using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._ReadyToUseTools._NetworkAnalysis
{
    /// <summary>
    /// <para>Generate Service Areas</para>
    /// <para>Determines network service areas around facilities. A
    /// network service area is a region that encompasses all streets that
    /// can be accessed within a given distance or travel time from one or
    /// more facilities. For instance, the 10-minute service area for a
    /// facility includes all the streets that can be reached within 10
    /// minutes from that facility.</para>
    /// <para>确定设施周围的网络服务区域。一个
    /// 网络服务区是一个区域，包括所有街道
    /// 可以在给定的距离或旅行时间内从一个或
    /// 更多设施。例如，10 分钟的服务区
    /// 设施包括 10 分钟内可以到达的所有街道
    /// 距离该设施仅数分钟路程。</para>
    /// </summary>    
    [DisplayName("Generate Service Areas")]
    public class GenerateServiceAreas : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public GenerateServiceAreas()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_Facilities">
        /// <para>Facilities</para>
        /// <para><xdoc>
        ///   <para>The input locations around which service areas are generated.</para>
        ///   <para>You can load up to 1,000 facilities.</para>
        ///   <para>The facilities feature set has an associated attribute table. The fields in the attribute table are described below.</para>
        ///   <para>ObjectID</para>
        ///   <para>The system-managed ID field.</para>
        ///   <para>Name</para>
        ///   <para>The name of the facility. If the name is not specified, a name is automatically generated at solve time.</para>
        ///   <para>All fields from the input facilities are included in the output polygons when the Polygons for Multiple Facilities parameter is set to Overlapping or Not Overlapping. The ObjectID field on the input facilities is transferred to the FacilityOID field on the output polygons.</para>
        ///   <para>Breaks</para>
        ///   <para>Specify the extent of the service area to be calculated on a per facility basis.</para>
        ///   <para>This attribute allows you to specify a different service area break value for each facility. For example, with two facilities, you can generate 5- and 10-minute service area polygons for one facility and 6-, 9-, and 12-minute polygons for the other facility.</para>
        ///   <para>Separate multiple break values with a space, and specify the numeric values using the dot character as your decimal separator, even if the locale of your computer defines a different decimal separator. For example, the value 5.5 10 15.5 specifies three break values around a facility.</para>
        ///   <para>AdditionalTime</para>
        ///   <para>The amount of time spent at the facility, which reduces the extent of the service area calculated for the given facility. The default value is 0.</para>
        ///   <para>For example, when calculating service areas that represent fire station response times, AdditionalTime can store the turnout time, which is the time it takes a crew to put on the appropriate protective equipment and exit the fire station, for each fire station. Assume Fire Station 1 has a turnout time of 1 minute and Fire Station 2 has a turnout time of 3 minutes. If a 5-minute service area is calculated for both fire stations, the actual service area for Fire Station 1 is 4 minutes (since 1 of the 5 minutes is required as turnout time). Similarly, Fire Station 2 has a service area of only 2 minutes from the fire station.</para>
        ///   <para>AdditionalDistance</para>
        ///   <para>The extra distance traveled to reach the facility before the service is calculated. This attribute reduces the extent of the service area calculated for the given facility. The default value is 0.</para>
        ///   <para>Generally, the location of a facility, such as a store location, isn't exactly on the street; it is set back somewhat from the road. This attribute value can be used to model the distance between the actual facility location and its location on the street if it is important to include that distance when calculating the service areas for the facility.</para>
        ///   <para>AdditionalCost</para>
        ///   <para>The extra cost spent at the facility, which reduces the extent of the service area calculated for the given facility. The default value is 0.</para>
        ///   <para>Use this attribute value when the travel mode for the analysis uses an impedance attribute that is neither time based nor distance based The units for the attribute values are interpreted to be in unknown units.</para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction a vehicle may arrive at and depart from the facility. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The vehicle can approach and depart the facility in either direction, so a U-turn is allowed at the facility. This setting can be chosen if it is possible and practical for a vehicle to turn around at the facility. This decision may depend on the width of the road and the amount of traffic or whether the facility has a parking lot where vehicles can enter and turn around.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—When the vehicle approaches and departs the facility, the curb must be on the right side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—When the vehicle approaches and departs the facility, the curb must be on the left side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side.</bullet_item><para/>
        ///       <bullet_item>3 (No U-Turn)—When the vehicle approaches the facility, the curb can be on either side of the vehicle, however, the vehicle must depart without turning around.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The CurbApproach attribute is designed to work with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions; that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a facility and not have a lane of traffic between the vehicle and the facility, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>生成服务区的输入位置。</para>
        ///   <para>您最多可以加载 1,000 个设施。</para>
        ///   <para>设施点要素集具有关联的属性表。属性表中的字段如下所述。</para>
        ///   <para>对象 ID</para>
        ///   <para>系统管理的 ID 字段。</para>
        ///   <para>名字</para>
        ///   <para>设施的名称。如果未指定名称，则在求解时自动生成名称。</para>
        ///   <para>当多个设施点的面参数设置为重叠或不重叠时，输入设施点中的所有字段都将包含在输出面中。输入设施点上的 ObjectID 字段将传输到输出面上的 FacilityOID 字段。</para>
        ///   <para>休息</para>
        ///   <para>指定要按设施点计算的服务区域范围。</para>
        ///   <para>此属性允许您为每个设施点指定不同的服务区中断值。例如，对于两个设施点，您可以为一个设施点生成 5 分钟和 10 分钟服务区面，为另一个设施点生成 6 分钟、9 分钟和 12 分钟面。</para>
        ///   <para>用空格分隔多个换行符，并使用点字符作为小数点分隔符指定数值，即使计算机的区域设置定义了不同的小数点分隔符也是如此。例如，值 5.5 10 15.5 指定设施点周围的三个中断值。</para>
        ///   <para>额外时间</para>
        ///   <para>在设施点上花费的时间量，这将减少为给定设施点计算的服务区域范围。默认值为 0。</para>
        ///   <para>例如，在计算表示消防站响应时间的服务区域时，AdditionalTime 可以存储每个消防站的出勤时间，即工作人员穿上适当的防护设备并离开消防站所需的时间。假设消防局 1 的投票时间为 1 分钟，消防局 2 的投票时间为 3 分钟。如果计算两个消防站的 5 分钟服务区，则消防局 1 的实际服务区为 4 分钟（因为 5 分钟中的 1 分钟需要作为出勤时间）。同样，消防局 2 的服务区距离消防局仅 2 分钟路程。</para>
        ///   <para>附加距离</para>
        ///   <para>计算服务之前到达设施点的额外距离。此属性可减小为给定设施点计算的服务区域范围。默认值为 0。</para>
        ///   <para>通常，设施的位置（例如商店位置）并不完全在街上;它离路有点后退。如果在计算设施点的服务区域时必须包含该距离，则此属性值可用于对实际设施点位置与其在街道上的位置之间的距离进行建模。</para>
        ///   <para>额外成本</para>
        ///   <para>在设施点上花费的额外成本，这减少了为给定设施点计算的服务区域范围。默认值为 0。</para>
        ///   <para>当分析的出行模式使用既不基于时间也不基于距离的阻抗属性时，请使用此属性值 属性值的单位被解释为未知单位。</para>
        ///   <para>遏制方法</para>
        ///   <para>指定车辆到达和离开设施点的方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0（车辆的任一侧）- 车辆可以在任一方向上接近和离开设施点，因此允许在设施点掉头。如果车辆在设施中转弯是可能且可行的，则可以选择此设置。这一决定可能取决于道路的宽度和交通量，或者设施是否有车辆可以进入和掉头的停车场。</bullet_item><para/>
        ///       <bullet_item>1（车辆右侧）- 当车辆接近和离开设施时，路缘必须位于车辆的右侧。禁止掉头。这通常用于车辆，例如公共汽车，这些车辆必须在右侧的公共汽车站到达。</bullet_item><para/>
        ///       <bullet_item>2（车辆左侧）— 当车辆接近和离开设施时，路缘必须位于车辆的左侧。禁止掉头。这通常用于车辆，例如公共汽车，这些车辆必须在左侧的公共汽车站到达。</bullet_item><para/>
        ///       <bullet_item>3（禁止掉头）- 当车辆接近设施时，路缘可以位于车辆的两侧，但是，车辆必须在不掉头的情况下离开。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach 属性旨在适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的设施。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近设施;也就是说，它最终位于车辆的右侧或左侧。例如，如果您要到达设施点，并且车辆和设施点之间没有车道，请在美国选择 1（车辆右侧），在英国选择 2（车辆左侧）。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_Break_Values">
        /// <para>Break Values</para>
        /// <para><xdoc>
        ///   <para>Specifies the size and number of service area polygons to generate for each facility. The units are determined by the Break Units value.</para>
        ///   <para>Multiple polygon breaks can be set to create concentric service areas per facility. For instance, to find 2-, 3-, and 5-mile service areas for each facility, type 2 3 5, separating the values with a space, and set Break Units to Miles. There is no limit to the number of break values you specify.</para>
        ///   <para>The size of the maximum break value can't exceed the equivalent of 300 minutes or 300 miles (482.80 kilometers). When generating detailed polygons, the maximum service-area size is limited to 15 minutes and 15 miles (24.14 kilometers).</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定要为每个设施点生成的服务区面的大小和数量。单位由“断裂单位”值确定。</para>
        ///   <para>可以设置多个面分隔点，以在每个设施点创建同心服务区。例如，要查找每个设施点的 2 英里、3 英里和 5 英里服务区，请键入 2 3 5，用空格分隔值，并将中断单位设置为英里。您指定的中断值的数量没有限制。</para>
        ///   <para>最大中断值的大小不能超过相当于 300 分钟或 300 英里（482.80 公里）的大小。生成详细面时，最大服务区大小限制为 15 分钟和 15 英里（24.14 千米）。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_Break_Units">
        /// <para>Break Units</para>
        /// <para><xdoc>
        ///   <para>Specifies the units for the Break Values parameter.</para>
        ///   <para>The units you choose for this parameter determine whether the tool will create service areas by measuring driving distance or driving time. Choose a time unit to measure driving time. To measure driving distance, choose a distance unit. Your choice also determines the units in which the tool will report total driving time or distance in the results.</para>
        ///   <para>The choices are as follows:</para>
        ///   <bulletList>
        ///     <bullet_item>Meters—The linear unit is meters.</bullet_item><para/>
        ///     <bullet_item>Kilometers—The linear unit is kilometers.</bullet_item><para/>
        ///     <bullet_item>Feet—The linear unit is feet.</bullet_item><para/>
        ///     <bullet_item>Yards—The linear unit is yards.</bullet_item><para/>
        ///     <bullet_item>Miles—The linear unit is miles.</bullet_item><para/>
        ///     <bullet_item>Nautical Miles—The linear unit is nautical miles.</bullet_item><para/>
        ///     <bullet_item>Seconds—The time unit is seconds.</bullet_item><para/>
        ///     <bullet_item>Minutes—The time unit is minutes.</bullet_item><para/>
        ///     <bullet_item>Hours—The time unit is hours.</bullet_item><para/>
        ///     <bullet_item>Days—The time unit is days.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定“断裂值”参数的单位。</para>
        ///   <para>为此参数选择的单位决定了工具是否通过测量行驶距离或行驶时间来创建服务区。选择一个时间单位来测量驾驶时间。要测量行驶距离，请选择距离单位。您的选择还决定了工具在结果中报告总行驶时间或距离的单位。</para>
        ///   <para>选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>米 - 线性单位为米。</bullet_item><para/>
        ///     <bullet_item>千米—线性单位为千米。</bullet_item><para/>
        ///     <bullet_item>英尺 - 线性单位为英尺。</bullet_item><para/>
        ///     <bullet_item>码 - 线性单位为码。</bullet_item><para/>
        ///     <bullet_item>英里—线性单位为英里。</bullet_item><para/>
        ///     <bullet_item>海里—线性单位为海里。</bullet_item><para/>
        ///     <bullet_item>秒 - 时间单位为秒。</bullet_item><para/>
        ///     <bullet_item>分钟 - 时间单位为分钟。</bullet_item><para/>
        ///     <bullet_item>小时 - 时间单位为小时。</bullet_item><para/>
        ///     <bullet_item>天 - 时间单位为天。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        public GenerateServiceAreas(object _Facilities, object _Break_Values, _Break_Units_value _Break_Units)
        {
            this._Facilities = _Facilities;
            this._Break_Values = _Break_Values;
            this._Break_Units = _Break_Units;
        }
        public override string ToolboxName => "Ready To Use Tools";

        public override string ToolName => "Generate Service Areas";

        public override string CallName => "agolservices.GenerateServiceAreas";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_Facilities, _Break_Values, _Break_Units.GetGPValue(), _Analysis_Region.GetGPValue(), _Travel_Direction.GetGPValue(), _Time_of_Day, _Use_Hierarchy, _UTurn_at_Junctions.GetGPValue(), _Polygons_for_Multiple_Facilities.GetGPValue(), _Polygon_Overlap_Type.GetGPValue(), _Detailed_Polygons, _Polygon_Trim_Distance, _Polygon_Simplification_Tolerance, _Point_Barriers, _Line_Barriers, _Polygon_Barriers, _Restrictions, _Attribute_Parameter_Values, _Time_Zone_for_Time_of_Day.GetGPValue(), _Travel_Mode, _Impedance.GetGPValue(), _Save_Output_Network_Analysis_Layer, _Overrides, _Time_Impedance.GetGPValue(), _Distance_Impedance.GetGPValue(), _Polygon_Detail.GetGPValue(), _Output_Type.GetGPValue(), _Output_Format.GetGPValue(), _Ignore_Invalid_Locations, _Service_Areas, _Solve_Succeeded, _Output_Network_Analysis_Layer, _Output_Facilities, _Output_Service_Area_Lines, _Output_Result_File, _Output_Network_Analysis_Layer_Package];

        /// <summary>
        /// <para>Facilities</para>
        /// <para><xdoc>
        ///   <para>The input locations around which service areas are generated.</para>
        ///   <para>You can load up to 1,000 facilities.</para>
        ///   <para>The facilities feature set has an associated attribute table. The fields in the attribute table are described below.</para>
        ///   <para>ObjectID</para>
        ///   <para>The system-managed ID field.</para>
        ///   <para>Name</para>
        ///   <para>The name of the facility. If the name is not specified, a name is automatically generated at solve time.</para>
        ///   <para>All fields from the input facilities are included in the output polygons when the Polygons for Multiple Facilities parameter is set to Overlapping or Not Overlapping. The ObjectID field on the input facilities is transferred to the FacilityOID field on the output polygons.</para>
        ///   <para>Breaks</para>
        ///   <para>Specify the extent of the service area to be calculated on a per facility basis.</para>
        ///   <para>This attribute allows you to specify a different service area break value for each facility. For example, with two facilities, you can generate 5- and 10-minute service area polygons for one facility and 6-, 9-, and 12-minute polygons for the other facility.</para>
        ///   <para>Separate multiple break values with a space, and specify the numeric values using the dot character as your decimal separator, even if the locale of your computer defines a different decimal separator. For example, the value 5.5 10 15.5 specifies three break values around a facility.</para>
        ///   <para>AdditionalTime</para>
        ///   <para>The amount of time spent at the facility, which reduces the extent of the service area calculated for the given facility. The default value is 0.</para>
        ///   <para>For example, when calculating service areas that represent fire station response times, AdditionalTime can store the turnout time, which is the time it takes a crew to put on the appropriate protective equipment and exit the fire station, for each fire station. Assume Fire Station 1 has a turnout time of 1 minute and Fire Station 2 has a turnout time of 3 minutes. If a 5-minute service area is calculated for both fire stations, the actual service area for Fire Station 1 is 4 minutes (since 1 of the 5 minutes is required as turnout time). Similarly, Fire Station 2 has a service area of only 2 minutes from the fire station.</para>
        ///   <para>AdditionalDistance</para>
        ///   <para>The extra distance traveled to reach the facility before the service is calculated. This attribute reduces the extent of the service area calculated for the given facility. The default value is 0.</para>
        ///   <para>Generally, the location of a facility, such as a store location, isn't exactly on the street; it is set back somewhat from the road. This attribute value can be used to model the distance between the actual facility location and its location on the street if it is important to include that distance when calculating the service areas for the facility.</para>
        ///   <para>AdditionalCost</para>
        ///   <para>The extra cost spent at the facility, which reduces the extent of the service area calculated for the given facility. The default value is 0.</para>
        ///   <para>Use this attribute value when the travel mode for the analysis uses an impedance attribute that is neither time based nor distance based The units for the attribute values are interpreted to be in unknown units.</para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction a vehicle may arrive at and depart from the facility. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The vehicle can approach and depart the facility in either direction, so a U-turn is allowed at the facility. This setting can be chosen if it is possible and practical for a vehicle to turn around at the facility. This decision may depend on the width of the road and the amount of traffic or whether the facility has a parking lot where vehicles can enter and turn around.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—When the vehicle approaches and departs the facility, the curb must be on the right side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—When the vehicle approaches and departs the facility, the curb must be on the left side of the vehicle. A U-turn is prohibited. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side.</bullet_item><para/>
        ///       <bullet_item>3 (No U-Turn)—When the vehicle approaches the facility, the curb can be on either side of the vehicle, however, the vehicle must depart without turning around.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The CurbApproach attribute is designed to work with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions; that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a facility and not have a lane of traffic between the vehicle and the facility, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>生成服务区的输入位置。</para>
        ///   <para>您最多可以加载 1,000 个设施。</para>
        ///   <para>设施点要素集具有关联的属性表。属性表中的字段如下所述。</para>
        ///   <para>对象 ID</para>
        ///   <para>系统管理的 ID 字段。</para>
        ///   <para>名字</para>
        ///   <para>设施的名称。如果未指定名称，则在求解时自动生成名称。</para>
        ///   <para>当多个设施点的面参数设置为重叠或不重叠时，输入设施点中的所有字段都将包含在输出面中。输入设施点上的 ObjectID 字段将传输到输出面上的 FacilityOID 字段。</para>
        ///   <para>休息</para>
        ///   <para>指定要按设施点计算的服务区域范围。</para>
        ///   <para>此属性允许您为每个设施点指定不同的服务区中断值。例如，对于两个设施点，您可以为一个设施点生成 5 分钟和 10 分钟服务区面，为另一个设施点生成 6 分钟、9 分钟和 12 分钟面。</para>
        ///   <para>用空格分隔多个换行符，并使用点字符作为小数点分隔符指定数值，即使计算机的区域设置定义了不同的小数点分隔符也是如此。例如，值 5.5 10 15.5 指定设施点周围的三个中断值。</para>
        ///   <para>额外时间</para>
        ///   <para>在设施点上花费的时间量，这将减少为给定设施点计算的服务区域范围。默认值为 0。</para>
        ///   <para>例如，在计算表示消防站响应时间的服务区域时，AdditionalTime 可以存储每个消防站的出勤时间，即工作人员穿上适当的防护设备并离开消防站所需的时间。假设消防局 1 的投票时间为 1 分钟，消防局 2 的投票时间为 3 分钟。如果计算两个消防站的 5 分钟服务区，则消防局 1 的实际服务区为 4 分钟（因为 5 分钟中的 1 分钟需要作为出勤时间）。同样，消防局 2 的服务区距离消防局仅 2 分钟路程。</para>
        ///   <para>附加距离</para>
        ///   <para>计算服务之前到达设施点的额外距离。此属性可减小为给定设施点计算的服务区域范围。默认值为 0。</para>
        ///   <para>通常，设施的位置（例如商店位置）并不完全在街上;它离路有点后退。如果在计算设施点的服务区域时必须包含该距离，则此属性值可用于对实际设施点位置与其在街道上的位置之间的距离进行建模。</para>
        ///   <para>额外成本</para>
        ///   <para>在设施点上花费的额外成本，这减少了为给定设施点计算的服务区域范围。默认值为 0。</para>
        ///   <para>当分析的出行模式使用既不基于时间也不基于距离的阻抗属性时，请使用此属性值 属性值的单位被解释为未知单位。</para>
        ///   <para>遏制方法</para>
        ///   <para>指定车辆到达和离开设施点的方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0（车辆的任一侧）- 车辆可以在任一方向上接近和离开设施点，因此允许在设施点掉头。如果车辆在设施中转弯是可能且可行的，则可以选择此设置。这一决定可能取决于道路的宽度和交通量，或者设施是否有车辆可以进入和掉头的停车场。</bullet_item><para/>
        ///       <bullet_item>1（车辆右侧）- 当车辆接近和离开设施时，路缘必须位于车辆的右侧。禁止掉头。这通常用于车辆，例如公共汽车，这些车辆必须在右侧的公共汽车站到达。</bullet_item><para/>
        ///       <bullet_item>2（车辆左侧）— 当车辆接近和离开设施时，路缘必须位于车辆的左侧。禁止掉头。这通常用于车辆，例如公共汽车，这些车辆必须在左侧的公共汽车站到达。</bullet_item><para/>
        ///       <bullet_item>3（禁止掉头）- 当车辆接近设施时，路缘可以位于车辆的两侧，但是，车辆必须在不掉头的情况下离开。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach 属性旨在适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的设施。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近设施;也就是说，它最终位于车辆的右侧或左侧。例如，如果您要到达设施点，并且车辆和设施点之间没有车道，请在美国选择 1（车辆右侧），在英国选择 2（车辆左侧）。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Facilities")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Facilities { get; set; }


        /// <summary>
        /// <para>Break Values</para>
        /// <para><xdoc>
        ///   <para>Specifies the size and number of service area polygons to generate for each facility. The units are determined by the Break Units value.</para>
        ///   <para>Multiple polygon breaks can be set to create concentric service areas per facility. For instance, to find 2-, 3-, and 5-mile service areas for each facility, type 2 3 5, separating the values with a space, and set Break Units to Miles. There is no limit to the number of break values you specify.</para>
        ///   <para>The size of the maximum break value can't exceed the equivalent of 300 minutes or 300 miles (482.80 kilometers). When generating detailed polygons, the maximum service-area size is limited to 15 minutes and 15 miles (24.14 kilometers).</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定要为每个设施点生成的服务区面的大小和数量。单位由“断裂单位”值确定。</para>
        ///   <para>可以设置多个面分隔点，以在每个设施点创建同心服务区。例如，要查找每个设施点的 2 英里、3 英里和 5 英里服务区，请键入 2 3 5，用空格分隔值，并将中断单位设置为英里。您指定的中断值的数量没有限制。</para>
        ///   <para>最大中断值的大小不能超过相当于 300 分钟或 300 英里（482.80 公里）的大小。生成详细面时，最大服务区大小限制为 15 分钟和 15 英里（24.14 千米）。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Break Values")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Break_Values { get; set; }


        /// <summary>
        /// <para>Break Units</para>
        /// <para><xdoc>
        ///   <para>Specifies the units for the Break Values parameter.</para>
        ///   <para>The units you choose for this parameter determine whether the tool will create service areas by measuring driving distance or driving time. Choose a time unit to measure driving time. To measure driving distance, choose a distance unit. Your choice also determines the units in which the tool will report total driving time or distance in the results.</para>
        ///   <para>The choices are as follows:</para>
        ///   <bulletList>
        ///     <bullet_item>Meters—The linear unit is meters.</bullet_item><para/>
        ///     <bullet_item>Kilometers—The linear unit is kilometers.</bullet_item><para/>
        ///     <bullet_item>Feet—The linear unit is feet.</bullet_item><para/>
        ///     <bullet_item>Yards—The linear unit is yards.</bullet_item><para/>
        ///     <bullet_item>Miles—The linear unit is miles.</bullet_item><para/>
        ///     <bullet_item>Nautical Miles—The linear unit is nautical miles.</bullet_item><para/>
        ///     <bullet_item>Seconds—The time unit is seconds.</bullet_item><para/>
        ///     <bullet_item>Minutes—The time unit is minutes.</bullet_item><para/>
        ///     <bullet_item>Hours—The time unit is hours.</bullet_item><para/>
        ///     <bullet_item>Days—The time unit is days.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定“断裂值”参数的单位。</para>
        ///   <para>为此参数选择的单位决定了工具是否通过测量行驶距离或行驶时间来创建服务区。选择一个时间单位来测量驾驶时间。要测量行驶距离，请选择距离单位。您的选择还决定了工具在结果中报告总行驶时间或距离的单位。</para>
        ///   <para>选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>米 - 线性单位为米。</bullet_item><para/>
        ///     <bullet_item>千米—线性单位为千米。</bullet_item><para/>
        ///     <bullet_item>英尺 - 线性单位为英尺。</bullet_item><para/>
        ///     <bullet_item>码 - 线性单位为码。</bullet_item><para/>
        ///     <bullet_item>英里—线性单位为英里。</bullet_item><para/>
        ///     <bullet_item>海里—线性单位为海里。</bullet_item><para/>
        ///     <bullet_item>秒 - 时间单位为秒。</bullet_item><para/>
        ///     <bullet_item>分钟 - 时间单位为分钟。</bullet_item><para/>
        ///     <bullet_item>小时 - 时间单位为小时。</bullet_item><para/>
        ///     <bullet_item>天 - 时间单位为天。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Break Units")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _Break_Units_value _Break_Units { get; set; }

        public enum _Break_Units_value
        {
            /// <summary>
            /// <para>Meters</para>
            /// <para>Meters—The linear unit is meters.</para>
            /// <para>米 - 线性单位为米。</para>
            /// </summary>
            [Description("Meters")]
            [GPEnumValue("Meters")]
            _Meters,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para>Kilometers—The linear unit is kilometers.</para>
            /// <para>千米—线性单位为千米。</para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("Kilometers")]
            _Kilometers,

            /// <summary>
            /// <para>Feet</para>
            /// <para>Feet—The linear unit is feet.</para>
            /// <para>英尺 - 线性单位为英尺。</para>
            /// </summary>
            [Description("Feet")]
            [GPEnumValue("Feet")]
            _Feet,

            /// <summary>
            /// <para>Yards</para>
            /// <para>Yards—The linear unit is yards.</para>
            /// <para>码 - 线性单位为码。</para>
            /// </summary>
            [Description("Yards")]
            [GPEnumValue("Yards")]
            _Yards,

            /// <summary>
            /// <para>Miles</para>
            /// <para>Miles—The linear unit is miles.</para>
            /// <para>英里—线性单位为英里。</para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("Miles")]
            _Miles,

            /// <summary>
            /// <para>Nautical Miles</para>
            /// <para>Nautical Miles—The linear unit is nautical miles.</para>
            /// <para>海里—线性单位为海里。</para>
            /// </summary>
            [Description("Nautical Miles")]
            [GPEnumValue("NauticalMiles")]
            _NauticalMiles,

            /// <summary>
            /// <para>Seconds</para>
            /// <para>Seconds—The time unit is seconds.</para>
            /// <para>秒 - 时间单位为秒。</para>
            /// </summary>
            [Description("Seconds")]
            [GPEnumValue("Seconds")]
            _Seconds,

            /// <summary>
            /// <para>Minutes</para>
            /// <para>Minutes—The time unit is minutes.</para>
            /// <para>分钟 - 时间单位为分钟。</para>
            /// </summary>
            [Description("Minutes")]
            [GPEnumValue("Minutes")]
            _Minutes,

            /// <summary>
            /// <para>Hours</para>
            /// <para>Hours—The time unit is hours.</para>
            /// <para>小时 - 时间单位为小时。</para>
            /// </summary>
            [Description("Hours")]
            [GPEnumValue("Hours")]
            _Hours,

            /// <summary>
            /// <para>Days</para>
            /// <para>Days—The time unit is days.</para>
            /// <para>天 - 时间单位为天。</para>
            /// </summary>
            [Description("Days")]
            [GPEnumValue("Days")]
            _Days,

        }

        /// <summary>
        /// <para>Analysis Region</para>
        /// <para><xdoc>
        ///   <para>The region in which the analysis will be performed. If a value is not specified for this parameter, the tool will automatically calculate the region name based on the location of the input points. Setting the name of the region is required only if the automatic detection of the region name is not accurate for your inputs.</para>
        ///   <para>To specify a region, use one of the following values:</para>
        ///   <bulletList>
        ///     <bullet_item>Europe—The analysis region is Europe.</bullet_item><para/>
        ///     <bullet_item>Japan—The analysis region is Japan.</bullet_item><para/>
        ///     <bullet_item>Korea—The analysis region is Korea.</bullet_item><para/>
        ///     <bullet_item>Middle East And Africa—The analysis region is Middle East and Africa.</bullet_item><para/>
        ///     <bullet_item>North America—The analysis region is North America.</bullet_item><para/>
        ///     <bullet_item>South America—The analysis region is South America.</bullet_item><para/>
        ///     <bullet_item>South Asia—The analysis region is South Asia.</bullet_item><para/>
        ///     <bullet_item>Thailand—The analysis region is Thailand.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The following region names are no longer supported and will be removed in future releases. If you specify one of the deprecated region names, the tool automatically assigns a supported region name for your region.
        ///   <bulletList>
        ///     <bullet_item>Greece redirects to Europe  </bullet_item><para/>
        ///     <bullet_item>India redirects to SouthAsia  </bullet_item><para/>
        ///     <bullet_item>Oceania redirects to SouthAsia  </bullet_item><para/>
        ///     <bullet_item>SouthEastAsia redirects to SouthAsia  </bullet_item><para/>
        ///     <bullet_item>Taiwan redirects to SouthAsia  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将在其中执行分析的区域。如果未为此参数指定值，则该工具将根据输入点的位置自动计算区域名称。仅当输入的区域名称的自动检测不准确时，才需要设置区域名称。</para>
        ///   <para>若要指定区域，请使用下列值之一：</para>
        ///   <bulletList>
        ///     <bullet_item>欧洲 - 分析区域为欧洲。</bullet_item><para/>
        ///     <bullet_item>日本 - 分析区域为日本。</bullet_item><para/>
        ///     <bullet_item>韩国—分析区域为韩国。</bullet_item><para/>
        ///     <bullet_item>中东和非洲 - 分析区域为中东和非洲。</bullet_item><para/>
        ///     <bullet_item>北美 - 分析区域为北美。</bullet_item><para/>
        ///     <bullet_item>南美洲 - 分析区域为南美洲。</bullet_item><para/>
        ///     <bullet_item>南亚—分析区域为南亚。</bullet_item><para/>
        ///     <bullet_item>泰国 - 分析区域为泰国。</bullet_item><para/>
        ///   </bulletList>
        /// <para>以下区域名称不再受支持，并将在将来的版本中删除。如果您指定其中一个已弃用的区域名称，则该工具会自动为您的区域分配支持的区域名称。
        ///   <bulletList>
        ///     <bullet_item>希腊重定向到欧洲</bullet_item><para/>
        ///     <bullet_item>印度重定向到南亚</bullet_item><para/>
        ///     <bullet_item>大洋洲重定向到南亚</bullet_item><para/>
        ///     <bullet_item>东南亚重定向到南亚</bullet_item><para/>
        ///     <bullet_item>台湾重定向到南亚</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Analysis Region")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Analysis_Region_value? _Analysis_Region { get; set; } = null;

        public enum _Analysis_Region_value
        {
            /// <summary>
            /// <para>Europe</para>
            /// <para>Europe—The analysis region is Europe.</para>
            /// <para>欧洲 - 分析区域为欧洲。</para>
            /// </summary>
            [Description("Europe")]
            [GPEnumValue("Europe")]
            _Europe,

            /// <summary>
            /// <para>Japan</para>
            /// <para>Japan—The analysis region is Japan.</para>
            /// <para>日本 - 分析区域为日本。</para>
            /// </summary>
            [Description("Japan")]
            [GPEnumValue("Japan")]
            _Japan,

            /// <summary>
            /// <para>Korea</para>
            /// <para>Korea—The analysis region is Korea.</para>
            /// <para>韩国—分析区域为韩国。</para>
            /// </summary>
            [Description("Korea")]
            [GPEnumValue("Korea")]
            _Korea,

            /// <summary>
            /// <para>Middle East And Africa</para>
            /// <para>Middle East And Africa—The analysis region is Middle East and Africa.</para>
            /// <para>中东和非洲 - 分析区域为中东和非洲。</para>
            /// </summary>
            [Description("Middle East And Africa")]
            [GPEnumValue("MiddleEastAndAfrica")]
            _MiddleEastAndAfrica,

            /// <summary>
            /// <para>North America</para>
            /// <para>North America—The analysis region is North America.</para>
            /// <para>北美 - 分析区域为北美。</para>
            /// </summary>
            [Description("North America")]
            [GPEnumValue("NorthAmerica")]
            _NorthAmerica,

            /// <summary>
            /// <para>South America</para>
            /// <para>South America—The analysis region is South America.</para>
            /// <para>南美洲 - 分析区域为南美洲。</para>
            /// </summary>
            [Description("South America")]
            [GPEnumValue("SouthAmerica")]
            _SouthAmerica,

            /// <summary>
            /// <para>South Asia</para>
            /// <para>South Asia—The analysis region is South Asia.</para>
            /// <para>南亚—分析区域为南亚。</para>
            /// </summary>
            [Description("South Asia")]
            [GPEnumValue("SouthAsia")]
            _SouthAsia,

            /// <summary>
            /// <para>Thailand</para>
            /// <para>Thailand—The analysis region is Thailand.</para>
            /// <para>泰国 - 分析区域为泰国。</para>
            /// </summary>
            [Description("Thailand")]
            [GPEnumValue("Thailand")]
            _Thailand,

        }

        /// <summary>
        /// <para>Travel Direction</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the direction of travel used to generate the service area polygons is toward or away from the facilities.</para>
        ///   <bulletList>
        ///     <bullet_item>Away From Facility—The service area is generated in the direction away from the facilities.</bullet_item><para/>
        ///     <bullet_item>Towards Facility—The service area is created in the direction toward the facilities.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The direction of travel may change the shape of the polygons because impedances on opposite sides of streets may differ or one-way restrictions may exist, such as one-way streets. The direction you should choose depends on the nature of your service area analysis. The service area for a pizza delivery store, for example, should be created away from the facility, whereas the service area of a hospital should be created toward the facility.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定用于生成服务区面的行进方向是朝向设施点还是远离设施点。</para>
        ///   <bulletList>
        ///     <bullet_item>远离设施点 - 服务区沿远离设施点的方向生成。</bullet_item><para/>
        ///     <bullet_item>朝向设施点 （Towards Facility） - 沿朝向设施点的方向创建服务区。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>行进方向可能会改变多边形的形状，因为街道两侧的阻抗可能不同，或者可能存在单向限制，例如单向街道。您应该选择的方向取决于服务区域分析的性质。例如，披萨外卖店的服务区应创建在远离设施的地方，而医院的服务区应朝向设施创建。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Travel Direction")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Travel_Direction_value _Travel_Direction { get; set; } = _Travel_Direction_value._Away_From_Facility;

        public enum _Travel_Direction_value
        {
            /// <summary>
            /// <para>Away From Facility</para>
            /// <para>Away From Facility—The service area is generated in the direction away from the facilities.</para>
            /// <para>远离设施点 - 服务区沿远离设施点的方向生成。</para>
            /// </summary>
            [Description("Away From Facility")]
            [GPEnumValue("Away From Facility")]
            _Away_From_Facility,

            /// <summary>
            /// <para>Towards Facility</para>
            /// <para>Towards Facility—The service area is created in the direction toward the facilities.</para>
            /// <para>朝向设施点 （Towards Facility） - 沿朝向设施点的方向创建服务区。</para>
            /// </summary>
            [Description("Towards Facility")]
            [GPEnumValue("Towards Facility")]
            _Towards_Facility,

        }

        /// <summary>
        /// <para>Time of Day</para>
        /// <para><xdoc>
        ///   <para>The time to depart from or arrive at the facilities. The interpretation of this value depends on whether travel is toward or away from the facilities.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>It represents the departure time if Travel Direction is set to Away from facilities.</bullet_item><para/>
        ///       <bullet_item>It represents the arrival time if Travel Direction is set to Toward facilities.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>You can use the Time Zone for Time of Day parameter to specify whether this time and date refers to UTC or the time zone in which the facility is located.</para>
        ///   <para>Repeatedly solving the same analysis, but using different Time of Day values, allows you to see how a facility's reach changes over time. For instance, the five-minute service area around a fire station may start out large in the early morning, diminish during the morning rush hour, grow in the late morning, and so on, throughout the day.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>离开或到达设施的时间。此值的解释取决于行程是朝向设施还是远离设施。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>如果“行驶方向”设置为“远离设施点”，则表示出发时间。</bullet_item><para/>
        ///       <bullet_item>如果“行驶方向”设置为“朝向设施点”，则表示到达时间。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>您可以使用“时间的时区”参数来指定此时间和日期是指 UTC 还是设施点所在的时区。</para>
        ///   <para>通过重复求解相同的分析，但使用不同的时间值，您可以查看设施的覆盖范围如何随时间变化。例如，消防站周围的五分钟服务区可能在清晨开始时很大，在早高峰时段逐渐减少，在清晨晚些时候增加，依此类推，一整天。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time of Day")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Time_of_Day { get; set; } = null;


        /// <summary>
        /// <para>Use Hierarchy</para>
        /// <para><xdoc>
        ///   <para>Specifies whether hierarchy will be used when finding the best route between the facility and the incident.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Checked (True)—Hierarchy will be used for the analysis. Using a hierarchy results in the solver preferring higher-order edges to lower-order edges. Hierarchical solves are faster, and they can be used to simulate the preference of a driver who chooses to travel on freeways over local roads when possible—even if that means a longer trip.</bullet_item><para/>
        ///       <bullet_item>Unchecked (False)—Hierarchy will not be used for the analysis. Not using a hierarchy yields an accurate service area measured along all edges of the network dataset regardless of hierarchy level.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Regardless of whether the Use Hierarchy parameter is checked (True), hierarchy is always used when the largest break value exceeds 240 minutes or 240 miles (386.24 kilometers).</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在查找设施点和事件点之间的最佳路径时是否使用层次结构。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>无论是否选中使用层次结构参数 （True），当最大中断值超过 240 分钟或 240 英里（386.24 千米）时，始终使用层次结构。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Use Hierarchy")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Use_Hierarchy { get; set; } = null;


        /// <summary>
        /// <para>UTurn at Junctions</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to restrict or permit the service area to make U-turns at junctions. To understand the parameter values, consider the following terminology: a junction is a point where a street segment ends and potentially connects to one or more other segments; a pseudojunction is a point where exactly two streets connect to one another; an intersection is a point where three or more streets connect; and a dead end is where one street segment ends without connecting to another.</para>
        ///   <bulletList>
        ///     <bullet_item>Allowed—U-turns are permitted at junctions with any number of connected edges. This is the default value.</bullet_item><para/>
        ///     <bullet_item>Not Allowed—U-turns are prohibited at all junctions, regardless of junction valency. Note, however, that U-turns are still permitted at network locations even when this option is chosen; however, you can set the individual network locations' CurbApproach attribute to prohibit U-turns there as well.</bullet_item><para/>
        ///     <bullet_item>Allowed only at Dead Ends—U-turns are prohibited at all junctions except those that have only one adjacent edge (a dead end).</bullet_item><para/>
        ///     <bullet_item>Allowed only at Intersections and Dead Ends—U-turns are prohibited at junctions where exactly two adjacent edges meet but are permitted at intersections (junctions with three or more adjacent edges) and dead ends (junctions with exactly one adjacent edge). Often, networks have extraneous junctions in the middle of road segments. This option prevents vehicles from making U-turns at these locations.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是限制还是允许服务区在交叉路口掉头。要了解参数值，请考虑以下术语：交汇点是街段结束并可能连接到一个或多个其他路段的点;伪交汇点是两条街道相互连接的点;交叉点是三条或更多街道连接的点;死胡同是指一个街道段结束而没有连接到另一个街道。</para>
        ///   <bulletList>
        ///     <bullet_item>允许 - 允许在具有任意数量连接边的交汇处进行 U 形转弯。这是默认值。</bullet_item><para/>
        ///     <bullet_item>不允许 - 无论交汇点化合价如何，所有交汇点都禁止掉头。但请注意，即使选择此选项，仍允许在网络位置掉头;但是，您也可以设置各个网络位置的 CurbApproach 属性，以禁止掉头。</bullet_item><para/>
        ///     <bullet_item>仅在死角处允许 - 禁止在所有交叉路口掉头，但只有一个相邻边（死胡同）的交叉路口除外。</bullet_item><para/>
        ///     <bullet_item>仅在交叉口和死端允许 - 在恰好有两条相邻边相交的交汇处禁止掉头，但在交叉点（具有三个或更多相邻边的交汇点）和死端（恰好具有一条相邻边的交汇点）允许掉头。通常，网络在路段中间有无关的交叉路口。此选项可防止车辆在这些位置掉头。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("UTurn at Junctions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _UTurn_at_Junctions_value _UTurn_at_Junctions { get; set; } = _UTurn_at_Junctions_value._Allowed_Only_at_Intersections_and_Dead_Ends;

        public enum _UTurn_at_Junctions_value
        {
            /// <summary>
            /// <para>Allowed</para>
            /// <para>Allowed—U-turns are permitted at junctions with any number of connected edges. This is the default value.</para>
            /// <para>允许 - 允许在具有任意数量连接边的交汇处进行 U 形转弯。这是默认值。</para>
            /// </summary>
            [Description("Allowed")]
            [GPEnumValue("Allowed")]
            _Allowed,

            /// <summary>
            /// <para>Not Allowed</para>
            /// <para>Not Allowed—U-turns are prohibited at all junctions, regardless of junction valency. Note, however, that U-turns are still permitted at network locations even when this option is chosen; however, you can set the individual network locations' CurbApproach attribute to prohibit U-turns there as well.</para>
            /// <para>不允许 - 无论交汇点化合价如何，所有交汇点都禁止掉头。但请注意，即使选择此选项，仍允许在网络位置掉头;但是，您也可以设置各个网络位置的 CurbApproach 属性，以禁止掉头。</para>
            /// </summary>
            [Description("Not Allowed")]
            [GPEnumValue("Not Allowed")]
            _Not_Allowed,

            /// <summary>
            /// <para>Allowed only at Dead Ends</para>
            /// <para>Allowed only at Dead Ends—U-turns are prohibited at all junctions except those that have only one adjacent edge (a dead end).</para>
            /// <para>仅在死角处允许 - 禁止在所有交叉路口掉头，但只有一个相邻边（死胡同）的交叉路口除外。</para>
            /// </summary>
            [Description("Allowed only at Dead Ends")]
            [GPEnumValue("Allowed Only at Dead Ends")]
            _Allowed_Only_at_Dead_Ends,

            /// <summary>
            /// <para>Allowed only at Intersections and Dead Ends</para>
            /// <para>Allowed only at Intersections and Dead Ends—U-turns are prohibited at junctions where exactly two adjacent edges meet but are permitted at intersections (junctions with three or more adjacent edges) and dead ends (junctions with exactly one adjacent edge). Often, networks have extraneous junctions in the middle of road segments. This option prevents vehicles from making U-turns at these locations.</para>
            /// <para>仅在交叉口和死端允许 - 在恰好有两条相邻边相交的交汇处禁止掉头，但在交叉点（具有三个或更多相邻边的交汇点）和死端（恰好具有一条相邻边的交汇点）允许掉头。通常，网络在路段中间有无关的交叉路口。此选项可防止车辆在这些位置掉头。</para>
            /// </summary>
            [Description("Allowed only at Intersections and Dead Ends")]
            [GPEnumValue("Allowed Only at Intersections and Dead Ends")]
            _Allowed_Only_at_Intersections_and_Dead_Ends,

        }

        /// <summary>
        /// <para>Geometry at Overlaps</para>
        /// <para><xdoc>
        ///   <para>Specifies how service area polygons will be generated when multiple facilities are present in the analysis.</para>
        ///   <bulletList>
        ///     <bullet_item>Overlapping—Individual polygons will be created for each facility. The polygons can overlap each other. This is the default.</bullet_item><para/>
        ///     <bullet_item>Not Overlapping—Individual polygons will be created such that a polygon from one facility cannot overlap polygons from other facilities. Any portion of the network can only be covered by the service area of the nearest facility.</bullet_item><para/>
        ///     <bullet_item>Merge by Break Value—Polygons of different facilities with the same break value will be created and joined.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>When using Overlapping or Not Overlapping, all fields from the input facilities are included in the output polygons, with the exception that values from the input ObjectID field are transferred to the FacilityOID field of the output polygons. The FacilityOID field is null when merging by break value, and the input fields are not included in the output.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定当分析中存在多个设施点时如何生成服务区面。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        ///   <para>使用“重叠”或“不重叠”时，输入设施点中的所有字段都包含在输出面中，但输入 ObjectID 字段中的值将传输到输出面的 FacilityOID 字段。按中断值合并时，FacilityOID 字段为 null，并且输入字段不包含在输出中。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Geometry at Overlaps")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Polygons_for_Multiple_Facilities_value _Polygons_for_Multiple_Facilities { get; set; } = _Polygons_for_Multiple_Facilities_value._Overlapping;

        public enum _Polygons_for_Multiple_Facilities_value
        {
            /// <summary>
            /// <para>Overlapping</para>
            /// <para>Overlapping—Individual polygons will be created for each facility. The polygons can overlap each other. This is the default.</para>
            /// <para></para>
            /// </summary>
            [Description("Overlapping")]
            [GPEnumValue("Overlapping")]
            _Overlapping,

            /// <summary>
            /// <para>Not Overlapping</para>
            /// <para>Not Overlapping—Individual polygons will be created such that a polygon from one facility cannot overlap polygons from other facilities. Any portion of the network can only be covered by the service area of the nearest facility.</para>
            /// <para></para>
            /// </summary>
            [Description("Not Overlapping")]
            [GPEnumValue("Not Overlapping")]
            _Not_Overlapping,

            /// <summary>
            /// <para>Merge by Break Value</para>
            /// <para>Merge by Break Value—Polygons of different facilities with the same break value will be created and joined.</para>
            /// <para></para>
            /// </summary>
            [Description("Merge by Break Value")]
            [GPEnumValue("Merge by Break Value")]
            _Merge_by_Break_Value,

        }

        /// <summary>
        /// <para>Geometry at Cutoffs</para>
        /// <para><xdoc>
        ///   <para>Specifies whether concentric service area polygons will be created as disks or rings. This option is applicable only when multiple break values are specified for the facilities.</para>
        ///   <bulletList>
        ///     <bullet_item>Rings—The polygons representing larger breaks exclude the polygons of smaller breaks. This creates polygons between consecutive breaks. Use this option to find the area from one break to another. For instance, if you create 5- and 10-minute service areas, the 10-minute service area polygon will exclude the area under the 5-minute service area polygon. This is the default.</bullet_item><para/>
        ///     <bullet_item>Disks—Polygons are created from the facility to the break. For instance, if you create 5- and 10-minute service areas, the 10-minute service area polygon will include the area under the 5-minute service area polygon.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是将同心服务区面创建为圆盘还是环。仅当为设施点指定了多个中断值时，此选项才适用。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Geometry at Cutoffs")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Polygon_Overlap_Type_value _Polygon_Overlap_Type { get; set; } = _Polygon_Overlap_Type_value._Rings;

        public enum _Polygon_Overlap_Type_value
        {
            /// <summary>
            /// <para>Rings</para>
            /// <para>Rings—The polygons representing larger breaks exclude the polygons of smaller breaks. This creates polygons between consecutive breaks. Use this option to find the area from one break to another. For instance, if you create 5- and 10-minute service areas, the 10-minute service area polygon will exclude the area under the 5-minute service area polygon. This is the default.</para>
            /// <para></para>
            /// </summary>
            [Description("Rings")]
            [GPEnumValue("Rings")]
            _Rings,

            /// <summary>
            /// <para>Disks</para>
            /// <para>Disks—Polygons are created from the facility to the break. For instance, if you create 5- and 10-minute service areas, the 10-minute service area polygon will include the area under the 5-minute service area polygon.</para>
            /// <para></para>
            /// </summary>
            [Description("Disks")]
            [GPEnumValue("Disks")]
            _Disks,

        }

        /// <summary>
        /// <para>Detailed Polygons</para>
        /// <para><xdoc>
        ///   <para>Use of this parameter is no longer recommended. To generate detailed polygons, set the Polygon Detail parameter value to High.</para>
        ///   <para>Specifies the option to create detailed or generalized polygons.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Unchecked (False)—Generalized polygons are created, which are generated quickly and are fairly accurate. This is the default.</bullet_item><para/>
        ///       <bullet_item>Checked (True)—Detailed polygons are created, which accurately model the service area lines and may contain islands of unreached areas. This option is much slower than generating generalized polygons. This option isn't supported when using hierarchy.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The tool supports generating detailed polygons only if the largest value specified in the Break Values parameter is less than or equal to 15 minutes or 15 miles (24.14 kilometers).</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>不再建议使用此参数。要生成详细面，请将“多边形详图”参数值设置为“高”。</para>
        ///   <para>指定用于创建详细或广义多边形的选项。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>仅当中断值参数中指定的最大值小于或等于 15 分钟或 15 英里（24.14 千米）时，该工具才支持生成详细面。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Detailed Polygons")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Detailed_Polygons { get; set; } = null;


        /// <summary>
        /// <para>Polygon Trim Distance</para>
        /// <para><xdoc>
        ///   <para>The distance within which the service area polygons will be trimmed. This is useful when finding service areas in places that have a sparse street network and you don't want the service area to cover large areas where there are no street features.</para>
        ///   <para>The default value is 100 meters. No value or a value of 0 for this parameter specifies that the service area polygons will not be trimmed. This parameter value is ignored when using hierarchy.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>服务区面将修剪的距离。在街道网络稀疏的地方查找服务区，并且不希望服务区覆盖没有街道要素的大面积区域时，此功能非常有用。</para>
        ///   <para>默认值为 100 米。此参数的无值或值为 0 指定不会修剪服务区面。使用层次结构时，将忽略此参数值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Polygon Trim Distance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public string _Polygon_Trim_Distance { get; set; } = "100 Meters";


        /// <summary>
        /// <para>Polygon Simplification Tolerance</para>
        /// <para><xdoc>
        ///   <para>The amount by which the polygon geometry will be simplified.</para>
        ///   <para>Simplification maintains critical vertices of a polygon to define its essential shape and removes other vertices. The simplification distance you specify is the maximum offset the simplified polygon boundaries can deviate from the original polygon boundaries. Simplifying a polygon reduces the number of vertices and tends to reduce drawing times.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将简化多边形几何的量。</para>
        ///   <para>简化保留多边形的关键顶点以定义其基本形状并删除其他顶点。指定的简化距离是简化的多边形边界可以偏离原始多边形边界的最大偏移量。简化多边形可以减少顶点的数量，并倾向于减少绘制时间。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Polygon Simplification Tolerance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public string _Polygon_Simplification_Tolerance { get; set; } = "10 Meters";


        /// <summary>
        /// <para>Point Barriers</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify one or more points that will act as temporary restrictions or represent additional time or distance that may be required to travel on the underlying streets. For example, a point barrier can be used to represent a fallen tree along a street or a time delay spent at a railroad crossing.</para>
        ///   <para>The tool imposes a limit of 250 points that can be added as barriers.</para>
        ///   <para>When specifying point barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the barrier.</para>
        ///   <para>BarrierType</para>
        ///   <para>Specifies whether the point barrier restricts travel completely or adds time or distance when it is crossed. The value for this attribute is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0 (Restriction)—Prohibits travel through the barrier. The barrier is referred to as a restriction point barrier since it acts as a restriction.</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>2 (Added Cost)—Traveling through the barrier increases the travel time or distance by the amount specified in the Additional_Time, Additional_Distance, or Additional_Cost field. This barrier type is referred to as an added cost point barrier.</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Additional_Time</para>
        ///   <para>The added travel time when the barrier is traversed. This field is applicable only for added-cost barriers and when the Measurement Units parameter value is time based.</para>
        ///   <para>This field value must be greater than or equal to zero, and its units must be the same as those specified in the Measurement Units parameter.</para>
        ///   <para>Additional_Distance</para>
        ///   <para>The added distance when the barrier is traversed. This field is applicable only for added-cost barriers and when the Measurement Units parameter value is distance based.</para>
        ///   <para>The field value must be greater than or equal to zero, and its units must be the same as those specified in the Measurement Units parameter.</para>
        ///   <para>Additional_Cost</para>
        ///   <para>The added cost when the barrier is traversed. This field is applicable only for added-cost barriers when the Measurement Units parameter value is neither time based nor distance based.</para>
        ///   <para>FullEdge</para>
        ///   <para>Specifies how the restriction point barriers are applied to the edge elements during the analysis. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (False)—Permits travel on the edge up to the barrier but not through it. This is the default value.</bullet_item><para/>
        ///       <bullet_item>1 (True)—Restricts travel anywhere on the associated edge.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction of traffic that is affected by the barrier. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The barrier affects travel over the edge in both directions.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—Vehicles are only affected if the barrier is on their right side during the approach. Vehicles that traverse the same edge but approach the barrier on their left side are not affected by the barrier.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—Vehicles are only affected if the barrier is on their left side during the approach. Vehicles that traverse the same edge but approach the barrier on their right side are not affected by the barrier.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Because junctions are points and don't have a side, barriers on junctions affect all vehicles regardless of the curb approach.</para>
        ///   <para>The CurbApproach attribute works with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, to arrive at a facility and not have a lane of traffic between the vehicle and the facility, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可指定一个或多个点，这些点将充当临时限制，或表示在基础街道上行驶可能需要的额外时间或距离。例如，点障碍可用于表示街道上倒下的树木或在铁路道口花费的时间延迟。</para>
        ///   <para>该工具施加了 250 个点的限制，可以将其添加为障碍。</para>
        ///   <para>指定点障碍时，可以使用以下属性为每个点障碍设置属性，例如其名称或障碍类型：</para>
        ///   <para>名字</para>
        ///   <para>屏障的名称。</para>
        ///   <para>屏障类型</para>
        ///   <para>指定点障碍是完全限制行程，还是在越过点障碍时增加时间或距离。此属性的值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0（限制）- 禁止通过障碍物。该屏障被称为限制点屏障，因为它充当限制。</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>2 （附加成本） - 穿越障碍物会增加行驶时间或距离，增加Additional_Time、Additional_Distance或Additional_Cost字段中指定的量。此屏障类型称为附加成本点屏障。</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Additional_Time</para>
        ///   <para>穿越障碍物时增加的行程时间。此字段仅适用于附加成本障碍和“度量单位”参数值基于时间的情况。</para>
        ///   <para>此字段值必须大于或等于零，并且其单位必须与测量单位参数中指定的单位相同。</para>
        ///   <para>Additional_Distance</para>
        ///   <para>穿越障碍物时增加的距离。此字段仅适用于附加成本障碍和测量单位参数值基于距离的情况。</para>
        ///   <para>字段值必须大于或等于零，并且其单位必须与测量单位参数中指定的单位相同。</para>
        ///   <para>Additional_Cost</para>
        ///   <para>穿越障碍物时增加的成本。此字段仅适用于“度量单位”参数值既不基于时间也不基于距离的附加成本障碍。</para>
        ///   <para>FullEdge的</para>
        ///   <para>指定在分析过程中如何将限制点屏障应用于边图元。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 （False） - 允许在边缘上行驶至障碍物，但不能穿过障碍物。这是默认值。</bullet_item><para/>
        ///       <bullet_item>1 （True） - 限制关联边上任意位置的行程。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>遏制方法</para>
        ///   <para>指定受障碍物影响的交通方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0（车辆的任一侧）- 障碍物影响两个方向的边缘行驶。</bullet_item><para/>
        ///       <bullet_item>1（车辆右侧）- 仅当障碍物在进近过程中位于其右侧时，车辆才会受到影响。穿越同一边缘但接近左侧障碍物的车辆不受障碍物的影响。</bullet_item><para/>
        ///       <bullet_item>2（车辆左侧）- 仅当障碍物在进近过程中位于其左侧时，车辆才会受到影响。穿越同一边缘但接近右侧障碍物的车辆不受障碍物的影响。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>由于交叉路口是点，没有边，因此无论路缘方法如何，交叉路口上的障碍物都会影响所有车辆。</para>
        ///   <para>CurbApproach 属性适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的设施。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近设施，也就是说，它最终位于车辆的右侧或左侧。例如，要到达设施点，并且车辆和设施点之间没有车道，请在美国选择 1（车辆右侧），在英国选择 2（车辆左侧）。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Point Barriers")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Point_Barriers { get; set; } = null;


        /// <summary>
        /// <para>Line Barriers</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify one or more lines that prohibit travel anywhere the lines intersect the streets. For example, a parade or protest that blocks traffic across several street segments can be modeled with a line barrier. A line barrier can also quickly fence off several roads from being traversed, thereby channeling possible routes away from undesirable parts of the street network.</para>
        ///   <para>The tool imposes a limit on the number of streets you can restrict using the Line Barriers parameter. While there is no limit to the number of lines you can specify as line barriers, the combined number of streets intersected by all the lines cannot exceed 500.</para>
        ///   <para>When specifying the line barriers, you can set name and barrier type properties for each using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the barrier.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可指定一条或多条线，这些线禁止这些线与街道相交的任何位置行驶。例如，可以使用线路障碍对阻塞多个街段交通的游行或抗议活动进行建模。线路障碍还可以快速将几条道路围起来，使其无法穿越，从而将可能的路线从街道网络的不良部分引导出去。</para>
        ///   <para>该工具对可以使用线屏障参数限制的街道数量施加限制。虽然可以指定为线障碍的线数没有限制，但所有线相交的街道总数不能超过 500 条。</para>
        ///   <para>指定线屏障时，可以使用以下属性为每个屏障设置名称和屏障类型属性：</para>
        ///   <para>名字</para>
        ///   <para>屏障的名称。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Line Barriers")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Line_Barriers { get; set; } = null;


        /// <summary>
        /// <para>Polygon Barriers</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify polygons that either completely restrict travel or proportionately scale the time or distance required to travel on the streets intersected by the polygons.</para>
        ///   <para>The service imposes a limit on the number of streets you can restrict using the Polygon Barriers parameter. While there is no limit to the number of polygons you can specify as polygon barriers, the combined number of streets intersected by all the polygons cannot exceed 2,000.</para>
        ///   <para>When specifying the polygon barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the barrier.</para>
        ///   <para>BarrierType</para>
        ///   <para>Specifies whether the barrier restricts travel completely or scales the cost (such as time or distance) for traveling through it. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0 (Restriction)—Prohibits traveling through any part of the barrier. The barrier is referred to as a restriction polygon barrier since it prohibits traveling on streets intersected by the barrier. One use of this type of barrier is to model floods covering areas of the street that make traveling on those streets impossible.</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>1 (Scaled Cost)—Scales the cost (such as travel time or distance) required to travel the underlying streets by a factor specified using the ScaledTimeFactor or ScaledDistanceFactor field. If the streets are partially covered by the barrier, the travel time or distance is apportioned and then scaled. For example, a factor of 0.25 means that travel on underlying streets is expected to be four times faster than normal. A factor of 3.0 means it is expected to take three times longer than normal to travel on underlying streets. This barrier type is referred to as a scaled-cost polygon barrier. It can be used to model storms that reduce travel speeds in specific regions.</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>ScaledTimeFactor</para>
        ///   <para>This is the factor by which the travel time of the streets intersected by the barrier is multiplied. The field value must be greater than zero.</para>
        ///   <para>This field is applicable only for scaled-cost barriers and when the Measurement Units parameter is time-based.</para>
        ///   <para>ScaledDistanceFactor</para>
        ///   <para>This is the factor by which the distance of the streets intersected by the barrier is multiplied. The field value must be greater than zero.</para>
        ///   <para>This field is applicable only for scaled-cost barriers and when the Measurement Units parameter is distance-based.</para>
        ///   <para>ScaledCostFactor</para>
        ///   <para>This is the factor by which the cost of the streets intersected by the barrier is multiplied. The field value must be greater than zero.</para>
        ///   <para>This field is applicable only for scaled-cost barriers when the Measurement Units parameter is neither time-based nor distance-based.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可以指定完全限制出行或按比例缩放在与多边形相交的街道上出行所需的时间或距离的多边形。</para>
        ///   <para>该服务对可以使用面障碍参数限制的街道数施加限制。虽然可以指定为面障碍的面的数量没有限制，但所有面相交的街道总数不能超过 2,000。</para>
        ///   <para>指定多边形障碍时，可以使用以下属性为每个面障碍设置属性，例如其名称或障碍类型：</para>
        ///   <para>名字</para>
        ///   <para>屏障的名称。</para>
        ///   <para>屏障类型</para>
        ///   <para>指定障碍是完全限制旅行还是缩放通过障碍物的成本（如时间或距离）。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0（限制）- 禁止通过屏障的任何部分。该障碍物称为限制多边形障碍，因为它禁止在与障碍物相交的街道上行驶。这种屏障的一个用途是模拟覆盖街道区域的洪水，这些区域使这些街道无法行驶。</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>1 （缩放成本） - 按使用 ScaledTimeFactor 或 ScaledDistanceFactor 字段指定的系数缩放行驶基础街道所需的成本（例如行驶时间或距离）。如果街道部分被障碍物覆盖，则会分摊行驶时间或距离，然后进行缩放。例如，系数 0.25 意味着在底层街道上的行驶速度预计将比正常情况快四倍。3.0 的系数意味着预计在底层街道上行驶所需的时间是正常情况的三倍。此屏障类型称为按比例开本的面屏障。它可用于模拟降低特定区域行进速度的风暴。</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>ScaledTimeFactor</para>
        ///   <para>这是与障碍物相交的街道的行驶时间乘以的系数。字段值必须大于零。</para>
        ///   <para>此字段仅适用于缩放成本障碍和度量单位参数基于时间的情况。</para>
        ///   <para>ScaledDistanceFactor</para>
        ///   <para>这是与障碍物相交的街道距离乘以的系数。字段值必须大于零。</para>
        ///   <para>此字段仅适用于缩放成本障碍和度量单位参数基于距离的情况。</para>
        ///   <para>ScaledCostFactor（缩放成本因子）</para>
        ///   <para>这是与障碍物相交的街道成本成倍增加的因素。字段值必须大于零。</para>
        ///   <para>此字段仅适用于“度量单位”参数既不基于时间也不基于距离的缩放成本障碍。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Polygon Barriers")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Polygon_Barriers { get; set; } = null;


        /// <summary>
        /// <para>Restrictions</para>
        /// <para><xdoc>
        ///   <para>The travel restrictions that will be honored by the tool when determining the service areas.</para>
        ///   <para>A restriction represents a driving preference or requirement. In most cases, restrictions cause roads to be prohibited. For instance, using the Avoid Toll Roads restriction will result in a route that will include toll roads only when it is required to travel on toll roads to visit an incident or a facility. Height Restriction makes it possible to route around any clearances that are lower than the height of your vehicle. If you are carrying corrosive materials on your vehicle, using the Any Hazmat Prohibited restriction prevents hauling the materials along roads where it is marked illegal to do so.</para>
        ///   <para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
        ///   <para>
        ///     <para>Some restrictions require an additional value to be specified for their use. This value must be associated with the restriction name and a specific parameter intended to work with the restriction. You can identify such restrictions if their names appear in the AttributeName column in the Attribute Parameter Values parameter. The ParameterValue field should be specified in the Attribute Parameter Values parameter for the restriction to be correctly used when finding traversable roads.</para>
        ///   </para>
        ///   <para>
        ///     <para>Some restrictions are supported only in certain countries; their availability is stated by region in the list below. Of the restrictions that have limited availability within a region, you can determine whether the restriction is available in a particular country by reviewing the table in the Country list section of Network analysis coverage. If a country has a value of Yes in the Logistics Attribute column, the restriction with select availability in the region is supported in that country. If you specify restriction names that are not available in the country where your incidents are located, the service ignores the invalid restrictions. The service also ignores restrictions when the Restriction Usage attribute parameter value is between 0 and 1 (see the Attribute Parameter Value parameter). It prohibits all restrictions when the Restriction Usage parameter value is greater than 0.</para>
        ///   </para>
        ///   <para>The tool supports the following restrictions:</para>
        ///   <bulletList>
        ///     <bullet_item>Any Hazmat Prohibited—The results will not include roads where transporting any kind of hazardous material is prohibited. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Avoid Carpool Roads—The results will avoid roads that are designated exclusively for car pool (high-occupancy) vehicles. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Express Lanes—The results will avoid roads designated as express lanes. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Ferries—The results will avoid ferries. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Gates—The results will avoid roads where there are gates, such as keyed access or guard-controlled entryways.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Limited Access Roads—The results will avoid roads that are limited-access highways.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Private Roads—The results will avoid roads that are not publicly owned and maintained.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Roads Unsuitable for Pedestrians—The results will avoid roads that are unsuitable for pedestrians.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Stairways—The results will avoid all stairways on a pedestrian-suitable route.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Toll Roads—The results will avoid all toll roads for automobiles.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Toll Roads for Trucks—The results will avoid all toll roads for trucks.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Truck Restricted Roads—The results will avoid roads where trucks are not allowed, except when making deliveries.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Unpaved Roads—The results will avoid roads that are not paved (for example, dirt, gravel, and so on). Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Axle Count Restriction—The results will not include roads where trucks with the specified number of axles are prohibited. The number of axles can be specified using the Number of Axles restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Driving a Bus—The results will not include roads where buses are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving a Taxi—The results will not include roads where taxis are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving a Truck—The results will not include roads where trucks are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving an Automobile—The results will not include roads where automobiles are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving an Emergency Vehicle—The results will not include roads where emergency vehicles are prohibited. Using this restriction will also ensure that the results will honor one-way streets.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Height Restriction—The results will not include roads where the vehicle height exceeds the maximum allowed height for the road. The vehicle height can be specified using the Vehicle Height (meters) restriction parameter. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Kingpin to Rear Axle Length Restriction—The results will not include roads where the vehicle length exceeds the maximum allowed kingpin to rear axle for all trucks on the road. The length between the vehicle kingpin and the rear axle can be specified using the Vehicle Kingpin to Rear Axle Length (meters) restriction parameter. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Length Restriction—The results will not include roads where the vehicle length exceeds the maximum allowed length for the road. The vehicle length can be specified using the Vehicle Length (meters) restriction parameter. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Preferred for Pedestrians—The results will use preferred routes suitable for pedestrian navigation. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Riding a Motorcycle—The results will not include roads where motorcycles are prohibited. Using this restriction will also ensure that the results will honor one-way streets.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Roads Under Construction Prohibited—The results will not include roads that are under construction.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Semi or Tractor with One or More Trailers Prohibited—The results will not include roads where semis or tractors with one or more trailers are prohibited. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Single Axle Vehicles Prohibited—The results will not include roads where vehicles with single axles are prohibited.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Tandem Axle Vehicles Prohibited—The results will not include roads where vehicles with tandem axles are prohibited.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Through Traffic Prohibited—The results will not include roads where through traffic (nonlocal) is prohibited.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Truck with Trailers Restriction—The results will not include roads where trucks with the specified number of trailers on the truck are prohibited. The number of trailers on the truck can be specified using the Number of Trailers on Truck restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Use Preferred Hazmat Routes—The results will prefer roads that are designated for transporting any kind of hazardous materials. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Use Preferred Truck Routes—The results will prefer roads that are designated as truck routes, such as the roads that are part of the national network as specified by the National Surface Transportation Assistance Act in the United States, or roads that are designated as truck routes by the state or province, or roads that are preferred by truckers when driving in an area.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Walking—The results will not include roads where pedestrians are prohibited.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Weight Restriction—The results will not include roads where the vehicle weight exceeds the maximum allowed weight for the road. The vehicle weight can be specified using the Vehicle Weight (kilograms) restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Weight per Axle Restriction—The results will not include roads where the vehicle weight per axle exceeds the maximum allowed weight per axle for the road. The vehicle weight per axle can be specified using the Vehicle Weight per Axle (kilograms) restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Width Restriction—The results will not include roads where the vehicle width exceeds the maximum allowed width for the road. The vehicle width can be specified using the Vehicle Width (meters) restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>在确定服务区域时，该工具将遵守的旅行限制。</para>
        ///   <para>限制表示驾驶偏好或要求。在大多数情况下，限制会导致道路被禁止。例如，使用“避开收费公路”限制将导致仅当需要在收费公路上行驶以访问事件或设施时，路线才会包含收费公路。高度限制可以绕过任何低于车辆高度的间隙。如果您在车辆上携带腐蚀性材料，请使用任何危险品禁止限制可防止在标记为非法的道路上拖运材料。</para>
        ///   <para>除非“出行模式”设置为“自定义”，否则将忽略为此参数提供的值。</para>
        ///   <para>
        ///     <para>某些限制需要指定附加值才能使用。此值必须与限制名称和用于该限制的特定参数相关联。如果这些限制的名称显示在“属性参数值”参数的“AttributeName”列中，则可以识别此类限制。应在 Attribute Parameter Values 参数中指定 ParameterValue 字段，以便在查找可穿越道路时正确使用限制。</para>
        ///   </para>
        ///   <para>
        ///     <para>某些限制仅在某些国家/地区受支持;它们的可用性在下面的列表中按地区说明。对于某个区域内可用性有限的限制，您可以通过查看网络分析覆盖范围的国家/地区列表部分中的表格来确定该限制在特定国家/地区是否可用。如果某个国家/地区的“物流属性”列中的值为“是”，则该国家/地区支持在该区域中选择可用性的限制。如果指定的限制名称在事件所在国家/地区不可用，则服务将忽略无效的限制。当限制使用属性参数值介于 0 和 1 之间时，该服务还会忽略限制（请参阅属性参数值参数）。当限制使用参数值大于 0 时，它禁止所有限制。</para>
        ///   </para>
        ///   <para>该工具支持以下限制：</para>
        ///   <bulletList>
        ///     <bullet_item>禁止任何危险品 - 结果将不包括禁止运输任何种类危险材料的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>避免拼车道路 - 结果将避免专门用于拼车（高占用率）车辆的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开快速车道 - 结果将避开指定为快速车道的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免乘坐渡轮 - 结果将避免乘坐渡轮。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开大门 - 结果将避开有大门的道路，例如带钥匙的入口或警卫控制的入口通道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免限制通行道路 - 结果将避开限制通行的高速公路道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开私人道路 - 结果将避开非公有和维护的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开不适合行人居住的道路 - 结果将避开不适合行人通行的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免楼梯 - 结果将避开适合行人的路线上的所有楼梯。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开收费公路 - 结果将避开所有汽车收费公路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开卡车的收费公路 - 结果将避开卡车的所有收费公路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开卡车限制道路 - 结果将避开不允许卡车通行的道路，但送货时除外。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免未铺砌的道路 - 结果将避免未铺砌的道路（例如，泥土、砾石等）。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>轴数限制 - 结果将不包括禁止具有指定轴数的卡车通行的道路。可以使用轴数限制参数指定轴数。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶公交车 - 结果将不包括禁止公交车行驶的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶出租车 - 结果将不包括禁止出租车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶卡车 - 结果将不包括禁止卡车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶汽车 - 结果将不包括禁止汽车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶紧急车辆 - 结果将不包括禁止紧急车辆通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>高度限制—结果将不包括车辆高度超过道路允许的最大高度的道路。可以使用车辆高度（米）限制参数指定车辆高度。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>主销到后轴长度限制 - 结果将不包括车辆长度超过道路上所有卡车允许的最大主销到后轴的道路。车辆主销和后轴之间的长度可以使用车辆主销到后轴长度（米）限制参数来指定。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>长度限制 - 结果将不包括车辆长度超过道路允许的最大长度的道路。可以使用车辆长度（米）限制参数指定车辆长度。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>行人首选—结果将使用适合行人导航的首选路径。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>骑摩托车 - 结果不包括禁止摩托车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止在建道路 - 结果将不包括在建道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止使用一辆或多辆拖车的半挂车或拖拉机 - 结果不包括禁止使用一辆或多辆拖车的半挂车或拖拉机的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止单轴车辆 - 结果将不包括禁止单轴车辆通行的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止双轴车辆 - 结果不包括禁止双轴车辆通行的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止直通车 - 结果将不包括禁止直通车（非本地）的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>带拖车限制的卡车—结果将不包括禁止卡车上装有指定数量拖车的卡车通行的道路。可以使用卡车上的拖车数量限制参数指定卡车上的拖车数量。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>使用首选危险品路线 - 结果将优先选择指定用于运输任何类型危险物料的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>使用首选卡车路径 - 结果将优先选择指定为卡车路径的道路，例如美国《国家地面交通援助法》规定的属于国家网络的道路，或由州或省指定为卡车路线的道路，或者卡车司机在某个区域行驶时首选的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>步行 - 结果将不包括禁止行人通行的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>重量限制 - 结果将不包括车辆重量超过道路允许最大重量的道路。可以使用车辆重量（千克）限制参数指定车辆重量。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>每轴重量限制—结果将不包括车辆每轴重量超过道路每轴允许最大重量的道路。可以使用车辆每轴重量（千克）限制参数指定车辆每轴重量。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>宽度限制—结果将不包括车辆宽度超过道路允许的最大宽度的道路。可以使用车辆宽度（米）限制参数指定车辆宽度。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Restrictions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _Restrictions { get; set; } = null;


        /// <summary>
        /// <para>Attribute Parameter Values</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify additional values required by an attribute or restriction, such as to specify whether the restriction prohibits, avoids, or prefers travel on restricted roads. If the restriction is meant to avoid or prefer roads, you can further specify the degree to which they are avoided or preferred using this parameter. For example, you can choose to never use toll roads, avoid them as much as possible, or prefer them.</para>
        ///   <para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
        ///   <para>If you specify the Attribute Parameter Values parameter from a feature class, the field names on the feature class must match the fields as follows:
        ///   <bulletList>
        ///     <bullet_item>AttributeName—The name of the restriction.  </bullet_item><para/>
        ///     <bullet_item>ParameterName—The name of the parameter associated with the restriction. A restriction can have one or more ParameterName field values based on its intended use.  </bullet_item><para/>
        ///     <bullet_item>ParameterValue—The value for ParameterName used by the tool when evaluating the restriction.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>The Attribute Parameter Values parameter is dependent on the Restrictions parameter. The ParameterValue field is applicable only if the restriction name is specified as the value for the Restrictions parameter.</para>
        ///   <para>In Attribute Parameter Values, each restriction (listed as AttributeName) has a ParameterName field value, Restriction Usage, that specifies whether the restriction prohibits, avoids, or prefers travel on the roads associated with the restriction as well as the degree to which the roads are avoided or preferred. The Restriction Usage ParameterName can be assigned any of the following string values or their equivalent numeric values listed in the parentheses:
        ///   <bulletList>
        ///     <bullet_item>PROHIBITED (-1)—Travel on the roads using the restriction is completely prohibited.  </bullet_item><para/>
        ///     <bullet_item>AVOID_HIGH (5)—It is highly unlikely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>AVOID_MEDIUM (2)—It is unlikely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>AVOID_LOW (1.3)—It is somewhat unlikely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>PREFER_LOW (0.8)—It is somewhat likely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>PREFER_MEDIUM (0.5)—It is likely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>PREFER_HIGH (0.2)—It is highly likely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>In most cases, you can use the default value, PROHIBITED, as the Restriction Usage value if the restriction is dependent on a vehicle characteristic such as vehicle height. However, in some cases, the Restriction Usage value depends on your routing preferences. For example, the Avoid Toll Roads restriction has the default value of AVOID_MEDIUM for the Restriction Usage attribute. This means that when the restriction is used, the tool will try to route around toll roads when it can. AVOID_MEDIUM also indicates how important it is to avoid toll roads when finding the best route; it has a medium priority. Choosing AVOID_LOW puts lower importance on avoiding tolls; choosing AVOID_HIGH instead gives it a higher importance and thus makes it more acceptable for the service to generate longer routes to avoid tolls. Choosing PROHIBITED entirely disallows travel on toll roads, making it impossible for a route to travel on any portion of a toll road. Keep in mind that avoiding or prohibiting toll roads, and thus avoiding toll payments, is the objective for some. In contrast, others prefer to drive on toll roads, because avoiding traffic is more valuable to them than the money spent on tolls. In the latter case, choose PREFER_LOW, PREFER_MEDIUM, or PREFER_HIGH as the value for Restriction Usage. The higher the preference, the farther the tool will go out of its way to travel on the roads associated with the restriction.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可指定属性或限制所需的其他值，例如指定限制是禁止、避免还是首选在受限道路上行驶。如果限制旨在避开或首选道路，则可以使用此参数进一步指定避开或首选道路的程度。例如，您可以选择从不使用收费公路、尽可能避开收费公路或更喜欢收费公路。</para>
        ///   <para>除非“出行模式”设置为“自定义”，否则将忽略为此参数提供的值。</para>
        /// <para>如果从要素类指定属性参数值参数，则要素类上的字段名称必须与字段匹配，如下所示：
        ///   <bulletList>
        ///     <bullet_item>AttributeName - 限制的名称。</bullet_item><para/>
        ///     <bullet_item>ParameterName - 与限制关联的参数的名称。根据限制的预期用途，限制可以具有一个或多个 ParameterName 字段值。 </bullet_item><para/>
        ///     <bullet_item>ParameterValue - 工具在评估限制时使用的 ParameterName 值。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>“属性参数值”参数依赖于“限制”参数。仅当限制名称指定为 Restrictions 参数的值时，ParameterValue 字段才适用。</para>
        /// <para>在“属性参数值”中，每个限制（列为 AttributeName）都有一个 ParameterName 字段值“限制用法”，该值指定限制是禁止、避免还是首选在与限制相关的道路上行驶，以及避免或首选道路的程度。可以为 Restriction Usage ParameterName 分配以下任何字符串值或括号中列出的等效数值：
        ///   <bulletList>
        ///     <bullet_item>禁止 （-1） - 完全禁止在使用该限制的道路上行驶。</bullet_item><para/>
        ///     <bullet_item>AVOID_HIGH （5） - 该工具极不可能在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>AVOID_MEDIUM （2） - 该工具不太可能在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>AVOID_LOW （1.3） - 该工具不太可能在路径中包含与限制相关的道路。</bullet_item><para/>
        ///     <bullet_item>PREFER_LOW （0.8） - 该工具很可能会在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>PREFER_MEDIUM （0.5） - 该工具可能会在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>PREFER_HIGH （0.2） - 该工具极有可能在路径中包括与限制关联的道路。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>在大多数情况下，如果限制取决于车辆特性（如车辆高度），则可以使用默认值 PROHIBITED 作为限制使用值。但是，在某些情况下，“限制使用”值取决于您的路由首选项。例如，“避免收费公路”限制的默认值为“限制使用情况”属性的默认值 AVOID_MEDIUM。这意味着，当使用限制时，该工具将尽可能尝试绕过收费公路。AVOID_MEDIUM还表明在寻找最佳路线时避开收费公路是多么重要;它具有中等优先级。选择AVOID_LOW对避免通行费的重视程度较低;相反，选择AVOID_HIGH会赋予它更高的重要性，从而使服务更容易接受生成更长的路线以避免通行费。选择“禁止”完全禁止在收费公路上行驶，使路线无法在收费公路的任何部分行驶。请记住，避免或禁止收费公路，从而避免通行费，是一些人的目标。相比之下，其他人更喜欢在收费公路上行驶，因为避开交通对他们来说比花在通行费上的钱更有价值。在后一种情况下，选择 PREFER_LOW、PREFER_MEDIUM 或 PREFER_HIGH 作为 Restriction Usage （限制使用情况） 的值。偏好越高，工具在与限制相关的道路上行驶的距离就越远。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Attribute Parameter Values")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Attribute_Parameter_Values { get; set; } = null;


        /// <summary>
        /// <para>Time Zone for Time of Day</para>
        /// <para><xdoc>
        ///   <para>Specifies the time zone or zones of the Time of Day parameter.</para>
        ///   <bulletList>
        ///     <bullet_item>Geographically Local—The Time of Day parameter refers to the time zone or zones in which the facilities are located. The start or end times of the service areas are staggered by time zone. Setting Time of Day to 9:00 AM, choosing Geographically Local for Time Zone for Time of Day, and solving causes service areas to be generated for 9:00 a.m. eastern time for any facilities in the eastern time zone, 9:00 a.m. central time for facilities in the central time zone, 9:00 a.m. mountain time for facilities in the mountain time zone, and so on, for facilities in different time zones.If stores in a chain that span the U.S. open at 9:00 a.m. local time, this parameter value can be chosen to find market territories at opening time for all stores in one solve. First, the stores in the eastern time zone open and a polygon is generated, then an hour later stores open in central time, and so on. Nine o'clock is always in local time but staggered in real time.</bullet_item><para/>
        ///     <bullet_item>UTC—The Time of Day parameter refers to coordinated universal time (UTC). All facilities are reached or departed from simultaneously, regardless of the time zone each is in.Setting Time of Day to 2:00 PM, choosing UTC, and solving causes service areas to be generated for 9:00 a.m. eastern standard time for any facilities in the eastern time zone, 8:00 a.m. central standard time for facilities in the central time zone, 7:00 a.m. mountain standard time for facilities in the mountain time zone, and so on, for facilities in different time zones.The scenario above assumes standard time. During daylight saving time, the eastern, central, and mountain times will each be one hour ahead (that is, 10:00, 9:00, and 8:00 a.m., respectively).One of the cases in which the UTC option is useful is to visualize emergency response coverage for a jurisdiction that is split into two time zones. The emergency vehicles are loaded as facilities. Time of Day parameter is set to now in UTC. (You need to determine the current time and date in terms of UTC to correctly use this option.) Other properties are set and the analysis is solved. Even though a time zone boundary divides the vehicles, the results show areas that can be reached given current traffic conditions. This same process can be used for other times as well, not just for now.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Regardless of the Time Zone for Time of Day setting, all facilities must be in the same time zone when Time of Day has a nonnull value and Polygons for Multiple Facilities is set to create merged or nonoverlapping polygons.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定“时间”参数的一个或多个时区。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        ///   <para>无论“时间的时区”设置如何，当“时间”值为非空值且“多个设施点的面”设置为创建合并或非重叠面时，所有设施点都必须位于同一时区。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Zone for Time of Day")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Time_Zone_for_Time_of_Day_value _Time_Zone_for_Time_of_Day { get; set; } = _Time_Zone_for_Time_of_Day_value._Geographically_Local;

        public enum _Time_Zone_for_Time_of_Day_value
        {
            /// <summary>
            /// <para>Geographically Local</para>
            /// <para>Geographically Local—The Time of Day parameter refers to the time zone or zones in which the facilities are located. The start or end times of the service areas are staggered by time zone. Setting Time of Day to 9:00 AM, choosing Geographically Local for Time Zone for Time of Day, and solving causes service areas to be generated for 9:00 a.m. eastern time for any facilities in the eastern time zone, 9:00 a.m. central time for facilities in the central time zone, 9:00 a.m. mountain time for facilities in the mountain time zone, and so on, for facilities in different time zones.If stores in a chain that span the U.S. open at 9:00 a.m. local time, this parameter value can be chosen to find market territories at opening time for all stores in one solve. First, the stores in the eastern time zone open and a polygon is generated, then an hour later stores open in central time, and so on. Nine o'clock is always in local time but staggered in real time.</para>
            /// <para></para>
            /// </summary>
            [Description("Geographically Local")]
            [GPEnumValue("Geographically Local")]
            _Geographically_Local,

            /// <summary>
            /// <para>UTC</para>
            /// <para>UTC—The Time of Day parameter refers to coordinated universal time (UTC). All facilities are reached or departed from simultaneously, regardless of the time zone each is in.Setting Time of Day to 2:00 PM, choosing UTC, and solving causes service areas to be generated for 9:00 a.m. eastern standard time for any facilities in the eastern time zone, 8:00 a.m. central standard time for facilities in the central time zone, 7:00 a.m. mountain standard time for facilities in the mountain time zone, and so on, for facilities in different time zones.The scenario above assumes standard time. During daylight saving time, the eastern, central, and mountain times will each be one hour ahead (that is, 10:00, 9:00, and 8:00 a.m., respectively).One of the cases in which the UTC option is useful is to visualize emergency response coverage for a jurisdiction that is split into two time zones. The emergency vehicles are loaded as facilities. Time of Day parameter is set to now in UTC. (You need to determine the current time and date in terms of UTC to correctly use this option.) Other properties are set and the analysis is solved. Even though a time zone boundary divides the vehicles, the results show areas that can be reached given current traffic conditions. This same process can be used for other times as well, not just for now.</para>
            /// <para></para>
            /// </summary>
            [Description("UTC")]
            [GPEnumValue("UTC")]
            _UTC,

        }

        /// <summary>
        /// <para>Travel Mode</para>
        /// <para><xdoc>
        ///   <para>The mode of transportation to model in the analysis. Travel modes are managed in ArcGIS Online and can be configured by the administrator of your organization to reflect your organization's workflows. You need to specify the name of a travel mode that is supported by your organization.</para>
        ///   <para>To get a list of supported travel mode names, use the same GIS server connection you used to access this tool, and run the GetTravelModes tool in the Utilities toolbox. The GetTravelModes tool adds the Supported Travel Modes table to the application. Any value in the Travel Mode Name field from the Supported Travel Modes table can be specified as input. You can also specify the value from the Travel Mode Settings field as input. This reduces the tool execution time because the tool does not have to find the settings based on the travel mode name.</para>
        ///   <para>The default value, Custom, allows you to configure your own travel mode using the custom travel mode parameters (UTurn at Junctions, Use Hierarchy, Restrictions, Attribute Parameter Values, and Impedance). The default values of the custom travel mode parameters model traveling by car. You can also choose Custom and set the custom travel mode parameters listed above to model a pedestrian with a fast walking speed or a truck with a given height, weight, and cargo of certain hazardous materials. You can try different settings to get the analysis results you want. Once you have identified the analysis settings, work with your organization's administrator and save these settings as part of a new or existing travel mode so that everyone in your organization can run the analysis with the same settings.</para>
        ///   <para>When you choose Custom, the values you set for the custom travel mode parameters are included in the analysis. Specifying another travel mode, as defined by your organization, causes any values you set for the custom travel mode parameters to be ignored; the tool overrides them with values from your specified travel mode.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>在分析中建模的运输方式。出行模式在 ArcGIS Online 中进行管理，可由组织管理员进行配置以反映组织的工作流。您需要指定组织支持的出行模式的名称。</para>
        ///   <para>要获取支持的出行模式名称列表，请使用用于访问此工具的相同 GIS 服务器连接，然后运行实用工具箱中的 GetTravelModes 工具。GetTravelModes 工具将“支持的出行模式”表添加到应用程序中。“支持的出行模式”（Supported Travel Modes） 表格中“出行模式名称”（Travel Mode Name） 字段中的任何值都可以指定为输入。您还可以将“出行模式设置”字段中的值指定为输入。这减少了工具的执行时间，因为工具不必根据出行模式名称查找设置。</para>
        ///   <para>默认值 Custom 允许您使用自定义出行模式参数（“交汇点处的 UTurn”、“使用层次结构”、“限制”、“属性参数值”和“阻抗”）配置自己的出行模式。自定义出行模式参数模型的默认值为汽车出行。您还可以选择自定义并设置上面列出的自定义出行模式参数，以对步行速度较快的行人或具有给定高度、重量和某些危险材料货物的卡车进行建模。您可以尝试不同的设置来获得所需的分析结果。确定分析设置后，请与组织的管理员合作，并将这些设置另存为新的或现有的出行模式的一部分，以便组织中的每个人都可以使用相同的设置运行分析。</para>
        ///   <para>选择“自定义”（Custom） 时，为自定义出行模式参数设置的值将包含在分析中。指定组织定义的其他出行模式会导致忽略您为自定义出行模式参数设置的任何值;该工具将使用指定出行模式中的值覆盖它们。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Travel Mode")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Travel_Mode { get; set; } = null;


        /// <summary>
        /// <para>Impedance</para>
        /// <para><xdoc>
        ///   <para>Specifies the impedance, which is a value that represents the effort or cost of traveling along road segments or on other parts of the transportation network.</para>
        ///   <para>Travel time is an impedance: a car may take 1 minute to travel a mile along an empty road. Travel times can vary by travel mode—a pedestrian may take more than 20 minutes to walk the same mile, so it is important to choose the right impedance for the travel mode you are modeling.</para>
        ///   <para>Travel distance can also be an impedance; the length of a road in kilometers can be thought of as impedance. Travel distance in this sense is the same for all modes—a kilometer for a pedestrian is also a kilometer for a car. (What may change is the pathways on which the different modes are allowed to travel, which affects distance between points, and this is modeled by travel mode settings.)</para>
        ///   <para>The value you provide for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
        ///   <bulletList>
        ///     <bullet_item>Travel Time—Historical and live traffic data is used. This option is good for modeling the time it takes automobiles to travel along roads at a specific time of day using live traffic speed data where available. When using TravelTime, you can optionally set the TravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the vehicle is capable of traveling.</bullet_item><para/>
        ///     <bullet_item>Minutes—Live traffic data is not used, but historical average speeds for automobiles data is used.</bullet_item><para/>
        ///     <bullet_item>Truck Travel Time—Historical and live traffic data is used, but the speed is capped at the posted truck speed limit. This is good for modeling the time it takes for the trucks to travel along roads at a specific time. When using TruckTravelTime, you can optionally set the TruckTravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the truck is capable of traveling.</bullet_item><para/>
        ///     <bullet_item>Truck Minutes—Live traffic data is not used, but the smaller of the historical average speeds for automobiles and the posted speed limits for trucks is used.</bullet_item><para/>
        ///     <bullet_item>Walk Time—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</bullet_item><para/>
        ///     <bullet_item>Miles—Length measurements along roads are stored in miles and can be used for performing analysis based on shortest distance.</bullet_item><para/>
        ///     <bullet_item>Kilometers—Length measurements along roads are stored in kilometers and can be used for performing analysis based on shortest distance.</bullet_item><para/>
        ///     <bullet_item>Time At One Kilometer Per Hour—The default is a speed of 1 km/hr on all roads and paths. The speed cannot be changed using any attribute parameter.</bullet_item><para/>
        ///     <bullet_item>Drive Time—Models travel times for a car. These travel times are dynamic and fluctuate according to traffic flows in areas where traffic data is available. This is the default value.</bullet_item><para/>
        ///     <bullet_item>Truck Time—Models travel times for a truck. These travel times are static for each road and don't fluctuate with traffic.</bullet_item><para/>
        ///     <bullet_item>Walk Time—Models travel times for a pedestrian.</bullet_item><para/>
        ///     <bullet_item>Travel Distance—Stores length measurements along roads and paths. To model walk distance, choose this option and ensure Walking is set in the Restriction parameter. Similarly, to model drive or truck distance, choose Travel Distance here and set the appropriate restrictions so your vehicle travels only on roads where it is permitted to do so.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>If you choose a time-based impedance, such as TravelTime, TruckTravelTime, Minutes, TruckMinutes, or WalkTime, the Break Units parameter must be set to a time-based value; if you choose a distance-based impedance such as Miles or Kilometers, Break Units must be a distance-based value.</para>
        ///   <para>Drive Time, Truck Time, Walk Time, and Travel Distance impedance values are no longer supported and will be removed in a future release. If you use one of these values, the tool uses the value of the Time Impedance parameter for time-based values and the Distance Impedance parameter for distance-based values.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定阻抗，该值表示沿路段或运输网络其他部分行驶的工作量或成本。</para>
        ///   <para>行驶时间是一种阻抗：一辆汽车在空旷的道路上行驶一英里可能需要 1 分钟。行驶时间可能因出行模式而异 - 行人走完同一英里可能需要 20 多分钟，因此为正在建模的出行模式选择正确的阻抗非常重要。</para>
        ///   <para>行程距离也可以是阻抗;以公里为单位的道路长度可以被认为是阻抗。从这个意义上说，所有模式的行驶距离都是相同的——行人的一公里也是汽车的一公里。（可能会改变的是允许不同模式行进的路径，这会影响点之间的距离，这是通过行进模式设置建模的。</para>
        ///   <para>除非将“出行模式”设置为“自定义”（默认值），否则将忽略为此参数提供的值。</para>
        ///   <bulletList>
        ///     <bullet_item>行驶时间 - 使用历史和实时交通数据。此选项适用于使用实时交通速度数据（如果可用）对汽车在一天中的特定时间沿道路行驶所需的时间进行建模。使用 TravelTime 时，您可以选择设置 TravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定车辆能够行驶的速度的物理限制。</bullet_item><para/>
        ///     <bullet_item>分钟 - 不使用实时交通数据，但使用汽车数据的历史平均速度。</bullet_item><para/>
        ///     <bullet_item>卡车行驶时间 - 使用历史和实时交通数据，但速度上限为公布的卡车速度限制。这有利于对卡车在特定时间沿道路行驶所需的时间进行建模。使用 TruckTravelTime 时，您可以选择设置 TruckTravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定卡车能够行驶的速度的物理限制。</bullet_item><para/>
        ///     <bullet_item>卡车分钟数 - 不使用实时交通数据，但使用汽车的历史平均速度和卡车公布的速度限制中的较小者。</bullet_item><para/>
        ///     <bullet_item>步行时间 - 所有道路和路径上的默认速度为 5 公里/小时，但可以通过步行时间：：步行速度（公里/小时）属性参数进行配置。</bullet_item><para/>
        ///     <bullet_item>英里 - 沿道路的长度测量值以英里为单位存储，可用于执行基于最短距离的分析。</bullet_item><para/>
        ///     <bullet_item>千米 - 沿道路的长度测量值以千米为单位存储，可用于执行基于最短距离的分析。</bullet_item><para/>
        ///     <bullet_item>一小时时间 - 所有道路和路径上的默认速度为 1 公里/小时。不能使用任何属性参数更改速度。</bullet_item><para/>
        ///     <bullet_item>行驶时间 - 对汽车的行驶时间进行建模。这些旅行时间是动态的，并根据交通数据可用地区的交通流量而波动。这是默认值。</bullet_item><para/>
        ///     <bullet_item>卡车时间 - 对卡车的行驶时间进行建模。这些行驶时间对于每条道路都是静态的，不会随着交通流量而波动。</bullet_item><para/>
        ///     <bullet_item>步行时间 - 对行人的行进时间进行建模。</bullet_item><para/>
        ///     <bullet_item>行驶距离 - 存储沿道路和路径的长度测量值。要对步行距离进行建模，请选择此选项，并确保在 Restriction 参数中设置了步行。同样，要对驾驶或卡车距离进行建模，请在此处选择行驶距离并设置适当的限制，以便您的车辆仅在允许行驶的道路上行驶。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>如果选择基于时间的阻抗，例如 TravelTime、TruckTravelTime、Minutes、TruckMinutes 或 WalkTime，则必须将 Break Units 参数设置为基于时间的值;如果选择基于距离的阻抗（如英里或公里），则断裂单位必须是基于距离的值。</para>
        ///   <para>“行驶时间”、“卡车时间”、“步行时间”和“行驶距离阻抗”值不再受支持，并将在将来的版本中删除。如果使用其中一个值，则该工具将使用时间阻抗参数的值来表示基于时间的值，将距离阻抗参数的值用于基于距离的值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Impedance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Impedance_value _Impedance { get; set; } = _Impedance_value._Drive_Time;

        public enum _Impedance_value
        {
            /// <summary>
            /// <para>Drive Time</para>
            /// <para>Drive Time—Models travel times for a car. These travel times are dynamic and fluctuate according to traffic flows in areas where traffic data is available. This is the default value.</para>
            /// <para>行驶时间 - 对汽车的行驶时间进行建模。这些旅行时间是动态的，并根据交通数据可用地区的交通流量而波动。这是默认值。</para>
            /// </summary>
            [Description("Drive Time")]
            [GPEnumValue("Drive Time")]
            _Drive_Time,

            /// <summary>
            /// <para>Truck Time</para>
            /// <para>Truck Time—Models travel times for a truck. These travel times are static for each road and don't fluctuate with traffic.</para>
            /// <para>卡车时间 - 对卡车的行驶时间进行建模。这些行驶时间对于每条道路都是静态的，不会随着交通流量而波动。</para>
            /// </summary>
            [Description("Truck Time")]
            [GPEnumValue("Truck Time")]
            _Truck_Time,

            /// <summary>
            /// <para>Walk Time</para>
            /// <para>Walk Time—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</para>
            /// <para>步行时间 - 所有道路和路径上的默认速度为 5 公里/小时，但可以通过步行时间：：步行速度（公里/小时）属性参数进行配置。</para>
            /// </summary>
            [Description("Walk Time")]
            [GPEnumValue("Walk Time")]
            _Walk_Time,

            /// <summary>
            /// <para>Travel Distance</para>
            /// <para>Travel Distance—Stores length measurements along roads and paths. To model walk distance, choose this option and ensure Walking is set in the Restriction parameter. Similarly, to model drive or truck distance, choose Travel Distance here and set the appropriate restrictions so your vehicle travels only on roads where it is permitted to do so.</para>
            /// <para>行驶距离 - 存储沿道路和路径的长度测量值。要对步行距离进行建模，请选择此选项，并确保在 Restriction 参数中设置了步行。同样，要对驾驶或卡车距离进行建模，请在此处选择行驶距离并设置适当的限制，以便您的车辆仅在允许行驶的道路上行驶。</para>
            /// </summary>
            [Description("Travel Distance")]
            [GPEnumValue("Travel Distance")]
            _Travel_Distance,

            /// <summary>
            /// <para>Minutes</para>
            /// <para>Minutes—Live traffic data is not used, but historical average speeds for automobiles data is used.</para>
            /// <para>分钟 - 不使用实时交通数据，但使用汽车数据的历史平均速度。</para>
            /// </summary>
            [Description("Minutes")]
            [GPEnumValue("Minutes")]
            _Minutes,

            /// <summary>
            /// <para>Travel Time</para>
            /// <para>Travel Time—Historical and live traffic data is used. This option is good for modeling the time it takes automobiles to travel along roads at a specific time of day using live traffic speed data where available. When using TravelTime, you can optionally set the TravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the vehicle is capable of traveling.</para>
            /// <para>行驶时间 - 使用历史和实时交通数据。此选项适用于使用实时交通速度数据（如果可用）对汽车在一天中的特定时间沿道路行驶所需的时间进行建模。使用 TravelTime 时，您可以选择设置 TravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定车辆能够行驶的速度的物理限制。</para>
            /// </summary>
            [Description("Travel Time")]
            [GPEnumValue("TravelTime")]
            _TravelTime,

            /// <summary>
            /// <para>Time At One Kilometer Per Hour</para>
            /// <para>Time At One Kilometer Per Hour—The default is a speed of 1 km/hr on all roads and paths. The speed cannot be changed using any attribute parameter.</para>
            /// <para>一小时时间 - 所有道路和路径上的默认速度为 1 公里/小时。不能使用任何属性参数更改速度。</para>
            /// </summary>
            [Description("Time At One Kilometer Per Hour")]
            [GPEnumValue("TimeAt1KPH")]
            _TimeAt1KPH,

            /// <summary>
            /// <para>Walk Time</para>
            /// <para>Walk Time—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</para>
            /// <para>步行时间 - 所有道路和路径上的默认速度为 5 公里/小时，但可以通过步行时间：：步行速度（公里/小时）属性参数进行配置。</para>
            /// </summary>
            [Description("Walk Time")]
            [GPEnumValue("WalkTime")]
            _WalkTime,

            /// <summary>
            /// <para>Truck Minutes</para>
            /// <para>Truck Minutes—Live traffic data is not used, but the smaller of the historical average speeds for automobiles and the posted speed limits for trucks is used.</para>
            /// <para>卡车分钟数 - 不使用实时交通数据，但使用汽车的历史平均速度和卡车公布的速度限制中的较小者。</para>
            /// </summary>
            [Description("Truck Minutes")]
            [GPEnumValue("TruckMinutes")]
            _TruckMinutes,

            /// <summary>
            /// <para>Truck Travel Time</para>
            /// <para>Truck Travel Time—Historical and live traffic data is used, but the speed is capped at the posted truck speed limit. This is good for modeling the time it takes for the trucks to travel along roads at a specific time. When using TruckTravelTime, you can optionally set the TruckTravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the truck is capable of traveling.</para>
            /// <para>卡车行驶时间 - 使用历史和实时交通数据，但速度上限为公布的卡车速度限制。这有利于对卡车在特定时间沿道路行驶所需的时间进行建模。使用 TruckTravelTime 时，您可以选择设置 TruckTravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定卡车能够行驶的速度的物理限制。</para>
            /// </summary>
            [Description("Truck Travel Time")]
            [GPEnumValue("TruckTravelTime")]
            _TruckTravelTime,

            /// <summary>
            /// <para>Miles</para>
            /// <para>Miles—Length measurements along roads are stored in miles and can be used for performing analysis based on shortest distance.</para>
            /// <para>英里 - 沿道路的长度测量值以英里为单位存储，可用于执行基于最短距离的分析。</para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("Miles")]
            _Miles,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para>Kilometers—Length measurements along roads are stored in kilometers and can be used for performing analysis based on shortest distance.</para>
            /// <para>千米 - 沿道路的长度测量值以千米为单位存储，可用于执行基于最短距离的分析。</para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("Kilometers")]
            _Kilometers,

        }

        /// <summary>
        /// <para>Save Output Network Analysis Layer</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the analysis settings will be saved as a network analysis layer file. You cannot directly work with this file even when you open the file in an ArcGIS Desktop application such as ArcMap. It is meant to be sent to Esri Technical Support to diagnose the quality of results returned from the tool.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Checked (True in Python)—The output will be saved as a network analysis layer file. The file will be downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the Geoprocessing Results window.</bullet_item><para/>
        ///       <bullet_item>Unchecked (False in Python)—The output will not be saved as a network analysis layer file. This is the default.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否将分析设置另存为网络分析图层文件。即使在 ArcGIS Desktop 应用程序（例如 ArcMap）中打开文件，也无法直接使用此文件。它旨在发送给 Esri 技术支持，以诊断从该工具返回的结果的质量。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>选中（在 Python 中为 True）—输出将另存为网络分析图层文件。该文件将下载到计算机上的临时目录中。在 ArcGIS Pro 中，可以通过查看工程地理处理历史记录中与工具执行相对应的条目中的输出网络分析图层参数的值来确定下载文件的位置。在 ArcMap 中，可以通过访问与地理处理结果窗口中的工具执行相对应的条目中输出网络分析图层参数的快捷菜单中的复制位置选项来确定文件的位置。</bullet_item><para/>
        ///       <bullet_item>未选中（Python 中为 False）—输出不会另存为网络分析图层文件。这是默认设置。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Save Output Network Analysis Layer")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Save_Output_Network_Analysis_Layer { get; set; } = null;


        /// <summary>
        /// <para>Overrides</para>
        /// <para><xdoc>
        ///   <para>Additional settings that can influence the behavior of the solver when finding solutions for the network analysis problems.</para>
        ///   <para>The value for this parameter must be specified in JavaScript Object Notation (JSON). For example, a valid value is of the following form: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. The override setting name is always enclosed in double quotation marks. The values can be a number, Boolean, or string.</para>
        ///   <para>The default value for this parameter is no value, which indicates not to override any solver settings.</para>
        ///   <para>Overrides are advanced settings that should be used only after careful analysis of the results obtained before and after applying the settings. For a list of supported override settings for each solver and their acceptable values, contact Esri Technical Support.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>在寻找网络分析问题的解决方案时可能影响求解器行为的其他设置。</para>
        ///   <para>此参数的值必须在 JavaScript 对象表示法 （JSON） 中指定。例如，有效值的格式如下：{“overrideSetting1” ： “value1”， “overrideSetting2” ： “value2”}。替代设置名称始终用双引号括起来。这些值可以是数字、布尔值或字符串。</para>
        ///   <para>此参数的默认值为 no value，表示不覆盖任何求解器设置。</para>
        ///   <para>替代是高级设置，只有在仔细分析应用设置之前和之后获得的结果后，才应使用。有关每个求解器支持的覆盖设置及其可接受值的列表，请联系 Esri 技术支持。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Overrides")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Overrides { get; set; } = null;


        /// <summary>
        /// <para>Time Impedance</para>
        /// <para>If the impedance for the travel mode, as specified using the Impedance parameter, is time based, the values for the Time Impedance and Impedance parameters must be identical. Otherwise, the service will return an error.</para>
        /// <para>如果使用阻抗参数指定的行驶模式的阻抗是基于时间的，则时间阻抗和阻抗参数的值必须相同。否则，服务将返回错误。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Impedance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Time_Impedance_value _Time_Impedance { get; set; } = _Time_Impedance_value._TravelTime;

        public enum _Time_Impedance_value
        {
            /// <summary>
            /// <para>Minutes</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Minutes")]
            [GPEnumValue("Minutes")]
            _Minutes,

            /// <summary>
            /// <para>Travel Time</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Travel Time")]
            [GPEnumValue("TravelTime")]
            _TravelTime,

            /// <summary>
            /// <para>Time At One Kilometer Per Hour</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Time At One Kilometer Per Hour")]
            [GPEnumValue("TimeAt1KPH")]
            _TimeAt1KPH,

            /// <summary>
            /// <para>Walk Time</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Walk Time")]
            [GPEnumValue("WalkTime")]
            _WalkTime,

            /// <summary>
            /// <para>Truck Minutes</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Truck Minutes")]
            [GPEnumValue("TruckMinutes")]
            _TruckMinutes,

            /// <summary>
            /// <para>Truck Travel Time</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Truck Travel Time")]
            [GPEnumValue("TruckTravelTime")]
            _TruckTravelTime,

        }

        /// <summary>
        /// <para>Distance Impedance</para>
        /// <para>If the impedance for the travel mode, as specified using the Impedance parameter, is distance based, the values for the Distance Impedance and Impedance parameters must be identical. Otherwise, the service will return an error.</para>
        /// <para>如果使用阻抗参数指定的行驶模式的阻抗是基于距离的，则距离阻抗和阻抗参数的值必须相同。否则，服务将返回错误。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Distance Impedance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Distance_Impedance_value _Distance_Impedance { get; set; } = _Distance_Impedance_value._Kilometers;

        public enum _Distance_Impedance_value
        {
            /// <summary>
            /// <para>Miles</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("Miles")]
            _Miles,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("Kilometers")]
            _Kilometers,

        }

        /// <summary>
        /// <para>Polygon Detail</para>
        /// <para><xdoc>
        ///   <para>Specifies the level of detail for the output polygons.</para>
        ///   <bulletList>
        ///     <bullet_item>Standard—Polygons will be created with a standard level of detail. Standard polygons are generated quickly and are fairly accurate, but quality deteriorates somewhat as you move toward the borders of the service area polygons. This is the default.</bullet_item><para/>
        ///     <bullet_item>Generalized—Generalized polygons will be created using the hierarchy present in the network data source to produce results quickly. Generalized polygons are inferior in quality compared to standard or high-precision polygons.</bullet_item><para/>
        ///     <bullet_item>High—Polygons will be created with the highest level of detail. Holes in the polygon may exist; they represent islands of network elements, such as streets, that couldn't be reached without exceeding the cutoff impedance or due to travel restrictions This option should be used for applications in which precise results are important.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>If your analysis covers an urban area with a grid-like street network, the difference between generalized and standard polygons will be minimal. However, for mountain and rural roads, the standard and detailed polygons may present significantly more accurate results than generalized polygons.</para>
        ///   <para>The tool supports generating high-precision polygons only if the largest value specified in the Break Values parameter is less than or equal to 15 minutes or 15 miles (24.14 kilometers).</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输出多边形的细节级别。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        ///   <para>如果分析涵盖具有网格状街道网络的城市区域，则广义面和标准面之间的差异将很小。但是，对于山区和农村道路，标准和详细多边形可能比广义多边形提供更准确的结果。</para>
        ///   <para>仅当 Break Values 参数中指定的最大值小于或等于 15 分钟或 15 英里（24.14 千米）时，该工具才支持生成高精度面。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Polygon Detail")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Polygon_Detail_value _Polygon_Detail { get; set; } = _Polygon_Detail_value._Standard;

        public enum _Polygon_Detail_value
        {
            /// <summary>
            /// <para>Generalized</para>
            /// <para>Generalized—Generalized polygons will be created using the hierarchy present in the network data source to produce results quickly. Generalized polygons are inferior in quality compared to standard or high-precision polygons.</para>
            /// <para></para>
            /// </summary>
            [Description("Generalized")]
            [GPEnumValue("Generalized")]
            _Generalized,

            /// <summary>
            /// <para>Standard</para>
            /// <para>Standard—Polygons will be created with a standard level of detail. Standard polygons are generated quickly and are fairly accurate, but quality deteriorates somewhat as you move toward the borders of the service area polygons. This is the default.</para>
            /// <para></para>
            /// </summary>
            [Description("Standard")]
            [GPEnumValue("Standard")]
            _Standard,

            /// <summary>
            /// <para>High</para>
            /// <para>High—Polygons will be created with the highest level of detail. Holes in the polygon may exist; they represent islands of network elements, such as streets, that couldn't be reached without exceeding the cutoff impedance or due to travel restrictions This option should be used for applications in which precise results are important.</para>
            /// <para></para>
            /// </summary>
            [Description("High")]
            [GPEnumValue("High")]
            _High,

        }

        /// <summary>
        /// <para>Output Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the type of output to be generated. Service area output can be line features representing the roads reachable before the cutoffs are exceeded or the polygon features encompassing these lines (representing the reachable area).</para>
        ///   <bulletList>
        ///     <bullet_item>Polygons—The service area output will contain polygons only. This is the default.</bullet_item><para/>
        ///     <bullet_item>Lines—The service area output will contain lines only.</bullet_item><para/>
        ///     <bullet_item>Polygons and lines—The service area output will contain both polygons and lines.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定要生成的输出类型。服务区输出可以是表示在超过截止点之前可到达的道路的线要素，也可以是包含这些线的面要素（表示可到达区域）。</para>
        ///   <bulletList>
        ///     <bullet_item>面—服务区输出将仅包含面。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>线 - 服务区输出将仅包含线。</bullet_item><para/>
        ///     <bullet_item>面和线—服务区输出将同时包含面和线。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Output_Type_value _Output_Type { get; set; } = _Output_Type_value._Polygons;

        public enum _Output_Type_value
        {
            /// <summary>
            /// <para>Polygons</para>
            /// <para>Polygons—The service area output will contain polygons only. This is the default.</para>
            /// <para>面—服务区输出将仅包含面。这是默认设置。</para>
            /// </summary>
            [Description("Polygons")]
            [GPEnumValue("Polygons")]
            _Polygons,

            /// <summary>
            /// <para>Lines</para>
            /// <para>Lines—The service area output will contain lines only.</para>
            /// <para>线 - 服务区输出将仅包含线。</para>
            /// </summary>
            [Description("Lines")]
            [GPEnumValue("Lines")]
            _Lines,

            /// <summary>
            /// <para>Polygons and lines</para>
            /// <para>Polygons and lines—The service area output will contain both polygons and lines.</para>
            /// <para>面和线—服务区输出将同时包含面和线。</para>
            /// </summary>
            [Description("Polygons and lines")]
            [GPEnumValue("Polygons and lines")]
            _Polygons_and_lines,

        }

        /// <summary>
        /// <para>Output Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the format in which the output features will be created.</para>
        ///   <bulletList>
        ///     <bullet_item>Feature Set—The output features will be returned as feature classes and tables. This is the default.</bullet_item><para/>
        ///     <bullet_item>JSON File—The output features will be returned as a compressed file containing the JSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more JSON files (with a .json extension) for each of the outputs created by the service.</bullet_item><para/>
        ///     <bullet_item>GeoJSON File—The output features will be returned as a compressed file containing the GeoJSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more GeoJSON files (with a .geojson extension) for each of the outputs created by the service.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>When a file-based output format, such as JSON File or GeoJSON File, is specified, no outputs will be added to the display because the application, such as ArcMap or ArcGIS Pro, cannot draw the contents of the result file. Instead, the result file is downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Result File parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Result File parameter in the entry corresponding to the tool execution in the Geoprocessing Results window.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定用于创建输出要素的格式。</para>
        ///   <bulletList>
        ///     <bullet_item>要素集 - 输出要素将作为要素类和表返回。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>JSON 文件—输出要素将作为包含输出的 JSON 表示的压缩文件返回。指定此选项时，输出是一个文件（扩展名为 .zip），其中包含一个或多个 JSON 文件（扩展名为 .json），用于服务创建的每个输出。</bullet_item><para/>
        ///     <bullet_item>GeoJSON 文件 - 输出要素将作为包含输出的 GeoJSON 表示的压缩文件返回。指定此选项后，输出为单个文件（扩展名为 .zip），其中包含一个或多个 GeoJSON 文件（扩展名为 .geojson），用于服务创建的每个输出。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>如果指定了基于文件的输出格式（例如 JSON 文件或 GeoJSON 文件），则不会将任何输出添加到显示中，因为应用程序（例如 ArcMap 或 ArcGIS Pro）无法绘制结果文件的内容。相反，结果文件将下载到计算机上的临时目录中。在 ArcGIS Pro 中，可以通过查看工程地理处理历史记录中与工具执行相对应的条目中的输出结果文件参数值来确定下载文件的位置。在 ArcMap 中，可以通过访问与地理处理结果窗口中的工具执行相对应的条目中输出结果文件参数快捷菜单中的复制位置选项来确定文件的位置。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Format")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Output_Format_value _Output_Format { get; set; } = _Output_Format_value._Feature_Set;

        public enum _Output_Format_value
        {
            /// <summary>
            /// <para>Feature Set</para>
            /// <para>Feature Set—The output features will be returned as feature classes and tables. This is the default.</para>
            /// <para>要素集 - 输出要素将作为要素类和表返回。这是默认设置。</para>
            /// </summary>
            [Description("Feature Set")]
            [GPEnumValue("Feature Set")]
            _Feature_Set,

            /// <summary>
            /// <para>JSON File</para>
            /// <para>JSON File—The output features will be returned as a compressed file containing the JSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more JSON files (with a .json extension) for each of the outputs created by the service.</para>
            /// <para>JSON 文件—输出要素将作为包含输出的 JSON 表示的压缩文件返回。指定此选项时，输出是一个文件（扩展名为 .zip），其中包含一个或多个 JSON 文件（扩展名为 .json），用于服务创建的每个输出。</para>
            /// </summary>
            [Description("JSON File")]
            [GPEnumValue("JSON File")]
            _JSON_File,

            /// <summary>
            /// <para>GeoJSON File</para>
            /// <para>GeoJSON File—The output features will be returned as a compressed file containing the GeoJSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more GeoJSON files (with a .geojson extension) for each of the outputs created by the service.</para>
            /// <para>GeoJSON 文件 - 输出要素将作为包含输出的 GeoJSON 表示的压缩文件返回。指定此选项后，输出为单个文件（扩展名为 .zip），其中包含一个或多个 GeoJSON 文件（扩展名为 .geojson），用于服务创建的每个输出。</para>
            /// </summary>
            [Description("GeoJSON File")]
            [GPEnumValue("GeoJSON File")]
            _GeoJSON_File,

        }

        /// <summary>
        /// <para>Ignore Invalid Locations</para>
        /// <para><xdoc>
        ///   <para>Specifies whether invalid input locations will be ignored.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Network locations that are unlocated will be ignored and the analysis will run using valid network locations only. The analysis will also continue if locations are on nontraversable elements or have other errors. This is useful if you know your network locations are not all correct, but you want to run the analysis with the network locations that are valid. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Invalid locations will not be ignored. Do not run the analysis if there are invalid locations. Correct the invalid locations and rerun the analysis.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否忽略无效的输入位置。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 未定位的网络位置将被忽略，并且将仅使用有效的网络位置运行分析。如果位置位于不可遍历图元上或存在其他错误，分析也将继续。如果您知道您的网络位置并非全部正确，但您希望使用有效的网络位置运行分析，这将非常有用。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中—无效位置不会被忽略。如果存在无效位置，请不要运行分析。更正无效位置并重新运行分析。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Ignore Invalid Locations")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Ignore_Invalid_Locations { get; set; } = null;


        /// <summary>
        /// <para>Service Areas</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Service Areas")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Service_Areas { get; set; }


        /// <summary>
        /// <para>Solve Succeeded</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Solve Succeeded")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Solve_Succeeded { get; set; }


        /// <summary>
        /// <para>Output Network Analysis Layer</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Network Analysis Layer")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Network_Analysis_Layer { get; set; }


        /// <summary>
        /// <para>Output Facilities</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Facilities")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Facilities { get; set; }


        /// <summary>
        /// <para>Output Service Area Lines</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Service Area Lines")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Service_Area_Lines { get; set; }


        /// <summary>
        /// <para>Output Result File</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Result File")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Result_File { get; set; }


        /// <summary>
        /// <para>Output Network Analysis Layer Package</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Network Analysis Layer Package")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Network_Analysis_Layer_Package { get; set; }


        public GenerateServiceAreas SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}